zstd-native-ruby 1.0.0

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 (651) hide show
  1. checksums.yaml +7 -0
  2. data/CLAUDE.md +101 -0
  3. data/LICENSE +19 -0
  4. data/README.md +47 -0
  5. data/ext/zstd_ruby/extconf.rb +35 -0
  6. data/ext/zstd_ruby/zstd_ruby.c +221 -0
  7. data/lib/zstd_ruby.rb +68 -0
  8. data/vendor/zstd/CHANGELOG +863 -0
  9. data/vendor/zstd/CMakeLists.txt +11 -0
  10. data/vendor/zstd/CODE_OF_CONDUCT.md +5 -0
  11. data/vendor/zstd/CONTRIBUTING.md +494 -0
  12. data/vendor/zstd/COPYING +339 -0
  13. data/vendor/zstd/LICENSE +30 -0
  14. data/vendor/zstd/Makefile +470 -0
  15. data/vendor/zstd/Package.swift +36 -0
  16. data/vendor/zstd/README.md +244 -0
  17. data/vendor/zstd/SECURITY.md +15 -0
  18. data/vendor/zstd/TESTING.md +43 -0
  19. data/vendor/zstd/build/LICENSE +0 -0
  20. data/vendor/zstd/build/README.md +56 -0
  21. data/vendor/zstd/build/VS2008/fullbench/fullbench.vcproj +549 -0
  22. data/vendor/zstd/build/VS2008/fuzzer/fuzzer.vcproj +585 -0
  23. data/vendor/zstd/build/VS2008/zstd/zstd.vcproj +677 -0
  24. data/vendor/zstd/build/VS2008/zstd.sln +56 -0
  25. data/vendor/zstd/build/VS2008/zstdlib/zstdlib.vcproj +635 -0
  26. data/vendor/zstd/build/VS2010/CompileAsCpp.props +8 -0
  27. data/vendor/zstd/build/VS2010/datagen/datagen.vcxproj +170 -0
  28. data/vendor/zstd/build/VS2010/fullbench/fullbench.vcxproj +220 -0
  29. data/vendor/zstd/build/VS2010/fuzzer/fuzzer.vcxproj +224 -0
  30. data/vendor/zstd/build/VS2010/libzstd/libzstd.vcxproj +243 -0
  31. data/vendor/zstd/build/VS2010/libzstd-dll/libzstd-dll.rc +51 -0
  32. data/vendor/zstd/build/VS2010/libzstd-dll/libzstd-dll.vcxproj +250 -0
  33. data/vendor/zstd/build/VS2010/zstd/zstd.rc +51 -0
  34. data/vendor/zstd/build/VS2010/zstd/zstd.vcxproj +266 -0
  35. data/vendor/zstd/build/VS2010/zstd.sln +84 -0
  36. data/vendor/zstd/build/VS_scripts/README.md +64 -0
  37. data/vendor/zstd/build/VS_scripts/build.VS2010.cmd +7 -0
  38. data/vendor/zstd/build/VS_scripts/build.VS2012.cmd +6 -0
  39. data/vendor/zstd/build/VS_scripts/build.VS2013.cmd +7 -0
  40. data/vendor/zstd/build/VS_scripts/build.VS2015.cmd +7 -0
  41. data/vendor/zstd/build/VS_scripts/build.VS2017.cmd +7 -0
  42. data/vendor/zstd/build/VS_scripts/build.VS2017Community.cmd +7 -0
  43. data/vendor/zstd/build/VS_scripts/build.VS2017Enterprise.cmd +7 -0
  44. data/vendor/zstd/build/VS_scripts/build.VS2017Professional.cmd +7 -0
  45. data/vendor/zstd/build/VS_scripts/build.VSPreview.cmd +7 -0
  46. data/vendor/zstd/build/VS_scripts/build.generic.cmd +67 -0
  47. data/vendor/zstd/build/cmake/CMakeLists.txt +81 -0
  48. data/vendor/zstd/build/cmake/CMakeModules/AddZstdCompilationFlags.cmake +138 -0
  49. data/vendor/zstd/build/cmake/CMakeModules/FindLibLZ4.cmake +49 -0
  50. data/vendor/zstd/build/cmake/CMakeModules/GetZstdLibraryVersion.cmake +10 -0
  51. data/vendor/zstd/build/cmake/CMakeModules/JoinPaths.cmake +23 -0
  52. data/vendor/zstd/build/cmake/CMakeModules/ZstdBuild.cmake +42 -0
  53. data/vendor/zstd/build/cmake/CMakeModules/ZstdDependencies.cmake +30 -0
  54. data/vendor/zstd/build/cmake/CMakeModules/ZstdOptions.cmake +68 -0
  55. data/vendor/zstd/build/cmake/CMakeModules/ZstdPackage.cmake +42 -0
  56. data/vendor/zstd/build/cmake/CMakeModules/ZstdVersion.cmake +31 -0
  57. data/vendor/zstd/build/cmake/README.md +155 -0
  58. data/vendor/zstd/build/cmake/contrib/CMakeLists.txt +13 -0
  59. data/vendor/zstd/build/cmake/contrib/gen_html/CMakeLists.txt +30 -0
  60. data/vendor/zstd/build/cmake/contrib/pzstd/CMakeLists.txt +39 -0
  61. data/vendor/zstd/build/cmake/lib/CMakeLists.txt +298 -0
  62. data/vendor/zstd/build/cmake/lib/cmake_uninstall.cmake.in +22 -0
  63. data/vendor/zstd/build/cmake/programs/CMakeLists.txt +144 -0
  64. data/vendor/zstd/build/cmake/tests/CMakeLists.txt +118 -0
  65. data/vendor/zstd/build/cmake/zstdConfig.cmake.in +10 -0
  66. data/vendor/zstd/build/meson/GetZstdLibraryVersion.py +39 -0
  67. data/vendor/zstd/build/meson/InstallSymlink.py +55 -0
  68. data/vendor/zstd/build/meson/README.md +38 -0
  69. data/vendor/zstd/build/meson/contrib/gen_html/meson.build +30 -0
  70. data/vendor/zstd/build/meson/contrib/meson.build +12 -0
  71. data/vendor/zstd/build/meson/contrib/pzstd/meson.build +25 -0
  72. data/vendor/zstd/build/meson/lib/meson.build +175 -0
  73. data/vendor/zstd/build/meson/meson.build +155 -0
  74. data/vendor/zstd/build/meson/meson_options.txt +36 -0
  75. data/vendor/zstd/build/meson/programs/meson.build +124 -0
  76. data/vendor/zstd/build/meson/tests/meson.build +217 -0
  77. data/vendor/zstd/build/meson/tests/valgrindTest.py +90 -0
  78. data/vendor/zstd/build/single_file_libs/README.md +33 -0
  79. data/vendor/zstd/build/single_file_libs/build_decoder_test.sh +91 -0
  80. data/vendor/zstd/build/single_file_libs/build_library_test.sh +98 -0
  81. data/vendor/zstd/build/single_file_libs/combine.py +234 -0
  82. data/vendor/zstd/build/single_file_libs/combine.sh +249 -0
  83. data/vendor/zstd/build/single_file_libs/create_single_file_decoder.sh +19 -0
  84. data/vendor/zstd/build/single_file_libs/create_single_file_library.sh +19 -0
  85. data/vendor/zstd/build/single_file_libs/examples/README.md +11 -0
  86. data/vendor/zstd/build/single_file_libs/examples/emscripten.c +340 -0
  87. data/vendor/zstd/build/single_file_libs/examples/roundtrip.c +83 -0
  88. data/vendor/zstd/build/single_file_libs/examples/shell.html +31 -0
  89. data/vendor/zstd/build/single_file_libs/examples/simple.c +75 -0
  90. data/vendor/zstd/build/single_file_libs/examples/testcard-dxt1.inl +2731 -0
  91. data/vendor/zstd/build/single_file_libs/examples/testcard-zstd.inl +261 -0
  92. data/vendor/zstd/build/single_file_libs/examples/testcard.png +0 -0
  93. data/vendor/zstd/build/single_file_libs/zstd-in.c +91 -0
  94. data/vendor/zstd/build/single_file_libs/zstddeclib-in.c +62 -0
  95. data/vendor/zstd/contrib/VS2005/README.md +3 -0
  96. data/vendor/zstd/contrib/VS2005/fullbench/fullbench.vcproj +440 -0
  97. data/vendor/zstd/contrib/VS2005/fuzzer/fuzzer.vcproj +488 -0
  98. data/vendor/zstd/contrib/VS2005/zstd/zstd.vcproj +552 -0
  99. data/vendor/zstd/contrib/VS2005/zstd.sln +55 -0
  100. data/vendor/zstd/contrib/VS2005/zstdlib/zstdlib.vcproj +546 -0
  101. data/vendor/zstd/contrib/cleanTabs +2 -0
  102. data/vendor/zstd/contrib/diagnose_corruption/Makefile +35 -0
  103. data/vendor/zstd/contrib/diagnose_corruption/check_flipped_bits.c +400 -0
  104. data/vendor/zstd/contrib/docker/Dockerfile +20 -0
  105. data/vendor/zstd/contrib/docker/README.md +20 -0
  106. data/vendor/zstd/contrib/externalSequenceProducer/Makefile +40 -0
  107. data/vendor/zstd/contrib/externalSequenceProducer/README.md +14 -0
  108. data/vendor/zstd/contrib/externalSequenceProducer/main.c +108 -0
  109. data/vendor/zstd/contrib/externalSequenceProducer/sequence_producer.c +80 -0
  110. data/vendor/zstd/contrib/externalSequenceProducer/sequence_producer.h +26 -0
  111. data/vendor/zstd/contrib/freestanding_lib/freestanding.py +774 -0
  112. data/vendor/zstd/contrib/gen_html/Makefile +51 -0
  113. data/vendor/zstd/contrib/gen_html/README.md +31 -0
  114. data/vendor/zstd/contrib/gen_html/gen-zstd-manual.sh +9 -0
  115. data/vendor/zstd/contrib/gen_html/gen_html.cpp +225 -0
  116. data/vendor/zstd/contrib/largeNbDicts/Makefile +58 -0
  117. data/vendor/zstd/contrib/largeNbDicts/README.md +33 -0
  118. data/vendor/zstd/contrib/largeNbDicts/largeNbDicts.c +1087 -0
  119. data/vendor/zstd/contrib/linux-kernel/Makefile +108 -0
  120. data/vendor/zstd/contrib/linux-kernel/README.md +14 -0
  121. data/vendor/zstd/contrib/linux-kernel/btrfs-benchmark.sh +104 -0
  122. data/vendor/zstd/contrib/linux-kernel/btrfs-extract-benchmark.sh +99 -0
  123. data/vendor/zstd/contrib/linux-kernel/decompress_sources.h +34 -0
  124. data/vendor/zstd/contrib/linux-kernel/linux.mk +44 -0
  125. data/vendor/zstd/contrib/linux-kernel/linux_zstd.h +691 -0
  126. data/vendor/zstd/contrib/linux-kernel/mem.h +262 -0
  127. data/vendor/zstd/contrib/linux-kernel/squashfs-benchmark.sh +39 -0
  128. data/vendor/zstd/contrib/linux-kernel/test/Makefile +49 -0
  129. data/vendor/zstd/contrib/linux-kernel/test/include/linux/compiler.h +23 -0
  130. data/vendor/zstd/contrib/linux-kernel/test/include/linux/errno.h +15 -0
  131. data/vendor/zstd/contrib/linux-kernel/test/include/linux/kernel.h +19 -0
  132. data/vendor/zstd/contrib/linux-kernel/test/include/linux/limits.h +15 -0
  133. data/vendor/zstd/contrib/linux-kernel/test/include/linux/math64.h +15 -0
  134. data/vendor/zstd/contrib/linux-kernel/test/include/linux/module.h +20 -0
  135. data/vendor/zstd/contrib/linux-kernel/test/include/linux/printk.h +15 -0
  136. data/vendor/zstd/contrib/linux-kernel/test/include/linux/stddef.h +15 -0
  137. data/vendor/zstd/contrib/linux-kernel/test/include/linux/swab.h +16 -0
  138. data/vendor/zstd/contrib/linux-kernel/test/include/linux/types.h +16 -0
  139. data/vendor/zstd/contrib/linux-kernel/test/include/linux/unaligned.h +187 -0
  140. data/vendor/zstd/contrib/linux-kernel/test/include/linux/xxhash.h +745 -0
  141. data/vendor/zstd/contrib/linux-kernel/test/macro-test.sh +44 -0
  142. data/vendor/zstd/contrib/linux-kernel/test/static_test.c +52 -0
  143. data/vendor/zstd/contrib/linux-kernel/test/test.c +229 -0
  144. data/vendor/zstd/contrib/linux-kernel/zstd_common_module.c +29 -0
  145. data/vendor/zstd/contrib/linux-kernel/zstd_compress_module.c +286 -0
  146. data/vendor/zstd/contrib/linux-kernel/zstd_decompress_module.c +141 -0
  147. data/vendor/zstd/contrib/linux-kernel/zstd_deps.h +121 -0
  148. data/vendor/zstd/contrib/match_finders/README.md +42 -0
  149. data/vendor/zstd/contrib/match_finders/zstd_edist.c +558 -0
  150. data/vendor/zstd/contrib/match_finders/zstd_edist.h +70 -0
  151. data/vendor/zstd/contrib/premake/premake4.lua +6 -0
  152. data/vendor/zstd/contrib/premake/zstd.lua +81 -0
  153. data/vendor/zstd/contrib/pzstd/BUCK +72 -0
  154. data/vendor/zstd/contrib/pzstd/ErrorHolder.h +54 -0
  155. data/vendor/zstd/contrib/pzstd/Logging.h +73 -0
  156. data/vendor/zstd/contrib/pzstd/Makefile +265 -0
  157. data/vendor/zstd/contrib/pzstd/Options.cpp +424 -0
  158. data/vendor/zstd/contrib/pzstd/Options.h +71 -0
  159. data/vendor/zstd/contrib/pzstd/Pzstd.cpp +626 -0
  160. data/vendor/zstd/contrib/pzstd/Pzstd.h +153 -0
  161. data/vendor/zstd/contrib/pzstd/README.md +56 -0
  162. data/vendor/zstd/contrib/pzstd/SkippableFrame.cpp +30 -0
  163. data/vendor/zstd/contrib/pzstd/SkippableFrame.h +64 -0
  164. data/vendor/zstd/contrib/pzstd/images/Cspeed.png +0 -0
  165. data/vendor/zstd/contrib/pzstd/images/Dspeed.png +0 -0
  166. data/vendor/zstd/contrib/pzstd/main.cpp +27 -0
  167. data/vendor/zstd/contrib/pzstd/test/BUCK +37 -0
  168. data/vendor/zstd/contrib/pzstd/test/OptionsTest.cpp +536 -0
  169. data/vendor/zstd/contrib/pzstd/test/PzstdTest.cpp +147 -0
  170. data/vendor/zstd/contrib/pzstd/test/RoundTrip.h +86 -0
  171. data/vendor/zstd/contrib/pzstd/test/RoundTripTest.cpp +84 -0
  172. data/vendor/zstd/contrib/pzstd/utils/BUCK +75 -0
  173. data/vendor/zstd/contrib/pzstd/utils/Buffer.h +99 -0
  174. data/vendor/zstd/contrib/pzstd/utils/FileSystem.h +96 -0
  175. data/vendor/zstd/contrib/pzstd/utils/Likely.h +28 -0
  176. data/vendor/zstd/contrib/pzstd/utils/Portability.h +16 -0
  177. data/vendor/zstd/contrib/pzstd/utils/Range.h +133 -0
  178. data/vendor/zstd/contrib/pzstd/utils/ResourcePool.h +96 -0
  179. data/vendor/zstd/contrib/pzstd/utils/ScopeGuard.h +50 -0
  180. data/vendor/zstd/contrib/pzstd/utils/ThreadPool.h +58 -0
  181. data/vendor/zstd/contrib/pzstd/utils/WorkQueue.h +182 -0
  182. data/vendor/zstd/contrib/pzstd/utils/test/BUCK +35 -0
  183. data/vendor/zstd/contrib/pzstd/utils/test/BufferTest.cpp +89 -0
  184. data/vendor/zstd/contrib/pzstd/utils/test/RangeTest.cpp +82 -0
  185. data/vendor/zstd/contrib/pzstd/utils/test/ResourcePoolTest.cpp +72 -0
  186. data/vendor/zstd/contrib/pzstd/utils/test/ScopeGuardTest.cpp +28 -0
  187. data/vendor/zstd/contrib/pzstd/utils/test/ThreadPoolTest.cpp +71 -0
  188. data/vendor/zstd/contrib/pzstd/utils/test/WorkQueueTest.cpp +282 -0
  189. data/vendor/zstd/contrib/recovery/Makefile +35 -0
  190. data/vendor/zstd/contrib/recovery/recover_directory.c +152 -0
  191. data/vendor/zstd/contrib/seekable_format/README.md +42 -0
  192. data/vendor/zstd/contrib/seekable_format/examples/Makefile +55 -0
  193. data/vendor/zstd/contrib/seekable_format/examples/parallel_compression.c +254 -0
  194. data/vendor/zstd/contrib/seekable_format/examples/parallel_processing.c +191 -0
  195. data/vendor/zstd/contrib/seekable_format/examples/seekable_compression.c +136 -0
  196. data/vendor/zstd/contrib/seekable_format/examples/seekable_decompression.c +141 -0
  197. data/vendor/zstd/contrib/seekable_format/examples/seekable_decompression_mem.c +147 -0
  198. data/vendor/zstd/contrib/seekable_format/tests/Makefile +58 -0
  199. data/vendor/zstd/contrib/seekable_format/tests/seekable_tests.c +375 -0
  200. data/vendor/zstd/contrib/seekable_format/zstd_seekable.h +226 -0
  201. data/vendor/zstd/contrib/seekable_format/zstd_seekable_compression_format.md +116 -0
  202. data/vendor/zstd/contrib/seekable_format/zstdseek_compress.c +365 -0
  203. data/vendor/zstd/contrib/seekable_format/zstdseek_decompress.c +600 -0
  204. data/vendor/zstd/contrib/seqBench/Makefile +58 -0
  205. data/vendor/zstd/contrib/seqBench/seqBench.c +53 -0
  206. data/vendor/zstd/contrib/snap/snapcraft.yaml +28 -0
  207. data/vendor/zstd/doc/README.md +26 -0
  208. data/vendor/zstd/doc/decompressor_errata.md +148 -0
  209. data/vendor/zstd/doc/decompressor_permissive.md +80 -0
  210. data/vendor/zstd/doc/educational_decoder/Makefile +62 -0
  211. data/vendor/zstd/doc/educational_decoder/README.md +36 -0
  212. data/vendor/zstd/doc/educational_decoder/harness.c +119 -0
  213. data/vendor/zstd/doc/educational_decoder/zstd_decompress.c +2323 -0
  214. data/vendor/zstd/doc/educational_decoder/zstd_decompress.h +61 -0
  215. data/vendor/zstd/doc/images/CSpeed2.png +0 -0
  216. data/vendor/zstd/doc/images/DCspeed5.png +0 -0
  217. data/vendor/zstd/doc/images/DSpeed3.png +0 -0
  218. data/vendor/zstd/doc/images/cdict_v136.png +0 -0
  219. data/vendor/zstd/doc/images/dict-cr.png +0 -0
  220. data/vendor/zstd/doc/images/dict-cs.png +0 -0
  221. data/vendor/zstd/doc/images/dict-ds.png +0 -0
  222. data/vendor/zstd/doc/images/zstd_cdict_v1_3_5.png +0 -0
  223. data/vendor/zstd/doc/images/zstd_logo86.png +0 -0
  224. data/vendor/zstd/doc/zstd_compression_format.md +1772 -0
  225. data/vendor/zstd/doc/zstd_manual.html +2244 -0
  226. data/vendor/zstd/examples/Makefile +93 -0
  227. data/vendor/zstd/examples/README.md +46 -0
  228. data/vendor/zstd/examples/common.h +246 -0
  229. data/vendor/zstd/examples/dictionary_compression.c +107 -0
  230. data/vendor/zstd/examples/dictionary_decompression.c +99 -0
  231. data/vendor/zstd/examples/multiple_simple_compression.c +116 -0
  232. data/vendor/zstd/examples/multiple_streaming_compression.c +133 -0
  233. data/vendor/zstd/examples/simple_compression.c +68 -0
  234. data/vendor/zstd/examples/simple_decompression.c +65 -0
  235. data/vendor/zstd/examples/streaming_compression.c +146 -0
  236. data/vendor/zstd/examples/streaming_compression_thread_pool.c +180 -0
  237. data/vendor/zstd/examples/streaming_decompression.c +100 -0
  238. data/vendor/zstd/examples/streaming_memory_usage.c +137 -0
  239. data/vendor/zstd/lib/BUCK +232 -0
  240. data/vendor/zstd/lib/Makefile +389 -0
  241. data/vendor/zstd/lib/README.md +267 -0
  242. data/vendor/zstd/lib/common/allocations.h +55 -0
  243. data/vendor/zstd/lib/common/bits.h +205 -0
  244. data/vendor/zstd/lib/common/bitstream.h +454 -0
  245. data/vendor/zstd/lib/common/compiler.h +482 -0
  246. data/vendor/zstd/lib/common/cpu.h +249 -0
  247. data/vendor/zstd/lib/common/debug.c +30 -0
  248. data/vendor/zstd/lib/common/debug.h +107 -0
  249. data/vendor/zstd/lib/common/debug.o +0 -0
  250. data/vendor/zstd/lib/common/entropy_common.c +340 -0
  251. data/vendor/zstd/lib/common/entropy_common.o +0 -0
  252. data/vendor/zstd/lib/common/error_private.c +64 -0
  253. data/vendor/zstd/lib/common/error_private.h +158 -0
  254. data/vendor/zstd/lib/common/error_private.o +0 -0
  255. data/vendor/zstd/lib/common/fse.h +625 -0
  256. data/vendor/zstd/lib/common/fse_decompress.c +315 -0
  257. data/vendor/zstd/lib/common/fse_decompress.o +0 -0
  258. data/vendor/zstd/lib/common/huf.h +277 -0
  259. data/vendor/zstd/lib/common/mem.h +422 -0
  260. data/vendor/zstd/lib/common/pool.c +371 -0
  261. data/vendor/zstd/lib/common/pool.h +81 -0
  262. data/vendor/zstd/lib/common/pool.o +0 -0
  263. data/vendor/zstd/lib/common/portability_macros.h +190 -0
  264. data/vendor/zstd/lib/common/threading.c +196 -0
  265. data/vendor/zstd/lib/common/threading.h +142 -0
  266. data/vendor/zstd/lib/common/threading.o +0 -0
  267. data/vendor/zstd/lib/common/xxhash.c +18 -0
  268. data/vendor/zstd/lib/common/xxhash.h +7094 -0
  269. data/vendor/zstd/lib/common/xxhash.o +0 -0
  270. data/vendor/zstd/lib/common/zstd_common.c +57 -0
  271. data/vendor/zstd/lib/common/zstd_common.o +0 -0
  272. data/vendor/zstd/lib/common/zstd_deps.h +123 -0
  273. data/vendor/zstd/lib/common/zstd_internal.h +326 -0
  274. data/vendor/zstd/lib/common/zstd_trace.h +156 -0
  275. data/vendor/zstd/lib/compress/clevels.h +134 -0
  276. data/vendor/zstd/lib/compress/fse_compress.c +625 -0
  277. data/vendor/zstd/lib/compress/fse_compress.o +0 -0
  278. data/vendor/zstd/lib/compress/hist.c +446 -0
  279. data/vendor/zstd/lib/compress/hist.h +86 -0
  280. data/vendor/zstd/lib/compress/hist.o +0 -0
  281. data/vendor/zstd/lib/compress/huf_compress.c +1465 -0
  282. data/vendor/zstd/lib/compress/huf_compress.o +0 -0
  283. data/vendor/zstd/lib/compress/zstd_compress.c +8362 -0
  284. data/vendor/zstd/lib/compress/zstd_compress.o +0 -0
  285. data/vendor/zstd/lib/compress/zstd_compress_internal.h +1636 -0
  286. data/vendor/zstd/lib/compress/zstd_compress_literals.c +235 -0
  287. data/vendor/zstd/lib/compress/zstd_compress_literals.h +39 -0
  288. data/vendor/zstd/lib/compress/zstd_compress_literals.o +0 -0
  289. data/vendor/zstd/lib/compress/zstd_compress_sequences.c +442 -0
  290. data/vendor/zstd/lib/compress/zstd_compress_sequences.h +55 -0
  291. data/vendor/zstd/lib/compress/zstd_compress_sequences.o +0 -0
  292. data/vendor/zstd/lib/compress/zstd_compress_superblock.c +688 -0
  293. data/vendor/zstd/lib/compress/zstd_compress_superblock.h +32 -0
  294. data/vendor/zstd/lib/compress/zstd_compress_superblock.o +0 -0
  295. data/vendor/zstd/lib/compress/zstd_cwksp.h +765 -0
  296. data/vendor/zstd/lib/compress/zstd_double_fast.c +778 -0
  297. data/vendor/zstd/lib/compress/zstd_double_fast.h +42 -0
  298. data/vendor/zstd/lib/compress/zstd_double_fast.o +0 -0
  299. data/vendor/zstd/lib/compress/zstd_fast.c +985 -0
  300. data/vendor/zstd/lib/compress/zstd_fast.h +30 -0
  301. data/vendor/zstd/lib/compress/zstd_fast.o +0 -0
  302. data/vendor/zstd/lib/compress/zstd_lazy.c +2243 -0
  303. data/vendor/zstd/lib/compress/zstd_lazy.h +193 -0
  304. data/vendor/zstd/lib/compress/zstd_lazy.o +0 -0
  305. data/vendor/zstd/lib/compress/zstd_ldm.c +745 -0
  306. data/vendor/zstd/lib/compress/zstd_ldm.h +109 -0
  307. data/vendor/zstd/lib/compress/zstd_ldm.o +0 -0
  308. data/vendor/zstd/lib/compress/zstd_ldm_geartab.h +106 -0
  309. data/vendor/zstd/lib/compress/zstd_opt.c +1572 -0
  310. data/vendor/zstd/lib/compress/zstd_opt.h +72 -0
  311. data/vendor/zstd/lib/compress/zstd_opt.o +0 -0
  312. data/vendor/zstd/lib/compress/zstd_preSplit.c +238 -0
  313. data/vendor/zstd/lib/compress/zstd_preSplit.h +33 -0
  314. data/vendor/zstd/lib/compress/zstd_preSplit.o +0 -0
  315. data/vendor/zstd/lib/compress/zstdmt_compress.c +1924 -0
  316. data/vendor/zstd/lib/compress/zstdmt_compress.h +102 -0
  317. data/vendor/zstd/lib/compress/zstdmt_compress.o +0 -0
  318. data/vendor/zstd/lib/decompress/huf_decompress.c +1953 -0
  319. data/vendor/zstd/lib/decompress/huf_decompress.o +0 -0
  320. data/vendor/zstd/lib/decompress/huf_decompress_amd64.S +766 -0
  321. data/vendor/zstd/lib/decompress/zstd_ddict.c +244 -0
  322. data/vendor/zstd/lib/decompress/zstd_ddict.h +44 -0
  323. data/vendor/zstd/lib/decompress/zstd_ddict.o +0 -0
  324. data/vendor/zstd/lib/decompress/zstd_decompress.c +2410 -0
  325. data/vendor/zstd/lib/decompress/zstd_decompress.o +0 -0
  326. data/vendor/zstd/lib/decompress/zstd_decompress_block.c +2311 -0
  327. data/vendor/zstd/lib/decompress/zstd_decompress_block.h +73 -0
  328. data/vendor/zstd/lib/decompress/zstd_decompress_block.o +0 -0
  329. data/vendor/zstd/lib/decompress/zstd_decompress_internal.h +240 -0
  330. data/vendor/zstd/lib/deprecated/zbuff.h +214 -0
  331. data/vendor/zstd/lib/deprecated/zbuff_common.c +26 -0
  332. data/vendor/zstd/lib/deprecated/zbuff_compress.c +167 -0
  333. data/vendor/zstd/lib/deprecated/zbuff_decompress.c +77 -0
  334. data/vendor/zstd/lib/dictBuilder/cover.c +1333 -0
  335. data/vendor/zstd/lib/dictBuilder/cover.h +152 -0
  336. data/vendor/zstd/lib/dictBuilder/divsufsort.c +1913 -0
  337. data/vendor/zstd/lib/dictBuilder/divsufsort.h +57 -0
  338. data/vendor/zstd/lib/dictBuilder/fastcover.c +765 -0
  339. data/vendor/zstd/lib/dictBuilder/zdict.c +1137 -0
  340. data/vendor/zstd/lib/dll/example/Makefile +48 -0
  341. data/vendor/zstd/lib/dll/example/README.md +63 -0
  342. data/vendor/zstd/lib/dll/example/build_package.bat +55 -0
  343. data/vendor/zstd/lib/dll/example/fullbench-dll.sln +25 -0
  344. data/vendor/zstd/lib/dll/example/fullbench-dll.vcxproj +181 -0
  345. data/vendor/zstd/lib/install_oses.mk +17 -0
  346. data/vendor/zstd/lib/legacy/zstd_legacy.h +452 -0
  347. data/vendor/zstd/lib/legacy/zstd_v01.c +2128 -0
  348. data/vendor/zstd/lib/legacy/zstd_v01.h +94 -0
  349. data/vendor/zstd/lib/legacy/zstd_v02.c +3465 -0
  350. data/vendor/zstd/lib/legacy/zstd_v02.h +93 -0
  351. data/vendor/zstd/lib/legacy/zstd_v03.c +3105 -0
  352. data/vendor/zstd/lib/legacy/zstd_v03.h +93 -0
  353. data/vendor/zstd/lib/legacy/zstd_v04.c +3598 -0
  354. data/vendor/zstd/lib/legacy/zstd_v04.h +142 -0
  355. data/vendor/zstd/lib/legacy/zstd_v05.c +4005 -0
  356. data/vendor/zstd/lib/legacy/zstd_v05.h +162 -0
  357. data/vendor/zstd/lib/legacy/zstd_v06.c +4110 -0
  358. data/vendor/zstd/lib/legacy/zstd_v06.h +172 -0
  359. data/vendor/zstd/lib/legacy/zstd_v07.c +4490 -0
  360. data/vendor/zstd/lib/legacy/zstd_v07.h +187 -0
  361. data/vendor/zstd/lib/libzstd.mk +238 -0
  362. data/vendor/zstd/lib/libzstd.pc.in +17 -0
  363. data/vendor/zstd/lib/module.modulemap +35 -0
  364. data/vendor/zstd/lib/zdict.h +481 -0
  365. data/vendor/zstd/lib/zstd.h +3209 -0
  366. data/vendor/zstd/lib/zstd_errors.h +107 -0
  367. data/vendor/zstd/programs/BUCK +44 -0
  368. data/vendor/zstd/programs/Makefile +445 -0
  369. data/vendor/zstd/programs/README.md +344 -0
  370. data/vendor/zstd/programs/benchfn.c +256 -0
  371. data/vendor/zstd/programs/benchfn.h +173 -0
  372. data/vendor/zstd/programs/benchzstd.c +1270 -0
  373. data/vendor/zstd/programs/benchzstd.h +191 -0
  374. data/vendor/zstd/programs/datagen.c +186 -0
  375. data/vendor/zstd/programs/datagen.h +38 -0
  376. data/vendor/zstd/programs/dibio.c +447 -0
  377. data/vendor/zstd/programs/dibio.h +39 -0
  378. data/vendor/zstd/programs/fileio.c +3717 -0
  379. data/vendor/zstd/programs/fileio.h +171 -0
  380. data/vendor/zstd/programs/fileio_asyncio.c +663 -0
  381. data/vendor/zstd/programs/fileio_asyncio.h +195 -0
  382. data/vendor/zstd/programs/fileio_common.h +121 -0
  383. data/vendor/zstd/programs/fileio_types.h +86 -0
  384. data/vendor/zstd/programs/lorem.c +285 -0
  385. data/vendor/zstd/programs/lorem.h +32 -0
  386. data/vendor/zstd/programs/platform.h +217 -0
  387. data/vendor/zstd/programs/timefn.c +170 -0
  388. data/vendor/zstd/programs/timefn.h +59 -0
  389. data/vendor/zstd/programs/util.c +1731 -0
  390. data/vendor/zstd/programs/util.h +364 -0
  391. data/vendor/zstd/programs/windres/verrsrc.h +17 -0
  392. data/vendor/zstd/programs/windres/zstd.rc +51 -0
  393. data/vendor/zstd/programs/windres/zstd32.res +0 -0
  394. data/vendor/zstd/programs/windres/zstd64.res +0 -0
  395. data/vendor/zstd/programs/zstd.1 +580 -0
  396. data/vendor/zstd/programs/zstd.1.md +714 -0
  397. data/vendor/zstd/programs/zstdcli.c +1675 -0
  398. data/vendor/zstd/programs/zstdcli_trace.c +173 -0
  399. data/vendor/zstd/programs/zstdcli_trace.h +24 -0
  400. data/vendor/zstd/programs/zstdgrep +134 -0
  401. data/vendor/zstd/programs/zstdgrep.1 +26 -0
  402. data/vendor/zstd/programs/zstdgrep.1.md +30 -0
  403. data/vendor/zstd/programs/zstdless +8 -0
  404. data/vendor/zstd/programs/zstdless.1 +14 -0
  405. data/vendor/zstd/programs/zstdless.1.md +16 -0
  406. data/vendor/zstd/tests/DEPRECATED-test-zstd-speed.py +378 -0
  407. data/vendor/zstd/tests/Makefile +485 -0
  408. data/vendor/zstd/tests/README.md +184 -0
  409. data/vendor/zstd/tests/automated_benchmarking.py +326 -0
  410. data/vendor/zstd/tests/checkTag.c +65 -0
  411. data/vendor/zstd/tests/check_size.py +31 -0
  412. data/vendor/zstd/tests/cli-tests/README.md +258 -0
  413. data/vendor/zstd/tests/cli-tests/basic/args.sh +10 -0
  414. data/vendor/zstd/tests/cli-tests/basic/args.sh.exit +1 -0
  415. data/vendor/zstd/tests/cli-tests/basic/args.sh.stderr.glob +28 -0
  416. data/vendor/zstd/tests/cli-tests/basic/help.sh +10 -0
  417. data/vendor/zstd/tests/cli-tests/basic/help.sh.stdout.glob +34 -0
  418. data/vendor/zstd/tests/cli-tests/basic/memlimit.sh +40 -0
  419. data/vendor/zstd/tests/cli-tests/basic/memlimit.sh.stderr.exact +13 -0
  420. data/vendor/zstd/tests/cli-tests/basic/memlimit.sh.stdout.exact +13 -0
  421. data/vendor/zstd/tests/cli-tests/basic/output_dir.sh +7 -0
  422. data/vendor/zstd/tests/cli-tests/basic/output_dir.sh.stderr.exact +2 -0
  423. data/vendor/zstd/tests/cli-tests/basic/output_dir.sh.stdout.exact +2 -0
  424. data/vendor/zstd/tests/cli-tests/basic/version.sh +6 -0
  425. data/vendor/zstd/tests/cli-tests/basic/version.sh.stdout.glob +2 -0
  426. data/vendor/zstd/tests/cli-tests/bin/cmp_size +44 -0
  427. data/vendor/zstd/tests/cli-tests/bin/datagen +3 -0
  428. data/vendor/zstd/tests/cli-tests/bin/die +4 -0
  429. data/vendor/zstd/tests/cli-tests/bin/println +2 -0
  430. data/vendor/zstd/tests/cli-tests/bin/unzstd +1 -0
  431. data/vendor/zstd/tests/cli-tests/bin/zstd +9 -0
  432. data/vendor/zstd/tests/cli-tests/bin/zstdcat +1 -0
  433. data/vendor/zstd/tests/cli-tests/bin/zstdgrep +2 -0
  434. data/vendor/zstd/tests/cli-tests/bin/zstdless +2 -0
  435. data/vendor/zstd/tests/cli-tests/cltools/setup +6 -0
  436. data/vendor/zstd/tests/cli-tests/cltools/zstdgrep.sh +8 -0
  437. data/vendor/zstd/tests/cli-tests/cltools/zstdgrep.sh.exit +1 -0
  438. data/vendor/zstd/tests/cli-tests/cltools/zstdgrep.sh.stderr.exact +1 -0
  439. data/vendor/zstd/tests/cli-tests/cltools/zstdgrep.sh.stdout.glob +4 -0
  440. data/vendor/zstd/tests/cli-tests/cltools/zstdless.sh +10 -0
  441. data/vendor/zstd/tests/cli-tests/cltools/zstdless.sh.stderr.exact +2 -0
  442. data/vendor/zstd/tests/cli-tests/cltools/zstdless.sh.stdout.glob +5 -0
  443. data/vendor/zstd/tests/cli-tests/common/format.sh +19 -0
  444. data/vendor/zstd/tests/cli-tests/common/mtime.sh +13 -0
  445. data/vendor/zstd/tests/cli-tests/common/permissions.sh +18 -0
  446. data/vendor/zstd/tests/cli-tests/common/platform.sh +47 -0
  447. data/vendor/zstd/tests/cli-tests/compression/adapt.sh +14 -0
  448. data/vendor/zstd/tests/cli-tests/compression/basic.sh +36 -0
  449. data/vendor/zstd/tests/cli-tests/compression/compress-literals.sh +10 -0
  450. data/vendor/zstd/tests/cli-tests/compression/format.sh +16 -0
  451. data/vendor/zstd/tests/cli-tests/compression/golden.sh +16 -0
  452. data/vendor/zstd/tests/cli-tests/compression/gzip-compat.sh +17 -0
  453. data/vendor/zstd/tests/cli-tests/compression/levels.sh +75 -0
  454. data/vendor/zstd/tests/cli-tests/compression/levels.sh.stderr.exact +80 -0
  455. data/vendor/zstd/tests/cli-tests/compression/long-distance-matcher.sh +7 -0
  456. data/vendor/zstd/tests/cli-tests/compression/multi-threaded.sh +22 -0
  457. data/vendor/zstd/tests/cli-tests/compression/multi-threaded.sh.stderr.exact +21 -0
  458. data/vendor/zstd/tests/cli-tests/compression/multiple-files.sh +21 -0
  459. data/vendor/zstd/tests/cli-tests/compression/multiple-files.sh.stdout.exact +12 -0
  460. data/vendor/zstd/tests/cli-tests/compression/row-match-finder.sh +7 -0
  461. data/vendor/zstd/tests/cli-tests/compression/setup +7 -0
  462. data/vendor/zstd/tests/cli-tests/compression/stream-size.sh +7 -0
  463. data/vendor/zstd/tests/cli-tests/compression/verbose-wlog.sh +11 -0
  464. data/vendor/zstd/tests/cli-tests/compression/verbose-wlog.sh.stderr.glob +5 -0
  465. data/vendor/zstd/tests/cli-tests/compression/verbose-wlog.sh.stdout.glob +5 -0
  466. data/vendor/zstd/tests/cli-tests/compression/window-resize.sh +9 -0
  467. data/vendor/zstd/tests/cli-tests/compression/window-resize.sh.stderr.ignore +0 -0
  468. data/vendor/zstd/tests/cli-tests/compression/window-resize.sh.stdout.glob +3 -0
  469. data/vendor/zstd/tests/cli-tests/decompression/detectErrors.sh +11 -0
  470. data/vendor/zstd/tests/cli-tests/decompression/golden.sh +7 -0
  471. data/vendor/zstd/tests/cli-tests/decompression/pass-through.sh +57 -0
  472. data/vendor/zstd/tests/cli-tests/decompression/pass-through.sh.stderr.exact +11 -0
  473. data/vendor/zstd/tests/cli-tests/decompression/pass-through.sh.stdout.exact +25 -0
  474. data/vendor/zstd/tests/cli-tests/determinism/basic.sh +36 -0
  475. data/vendor/zstd/tests/cli-tests/determinism/basic.sh.stderr.exact +0 -0
  476. data/vendor/zstd/tests/cli-tests/determinism/basic.sh.stdout.exact +880 -0
  477. data/vendor/zstd/tests/cli-tests/determinism/multithread.sh +45 -0
  478. data/vendor/zstd/tests/cli-tests/determinism/multithread.sh.stderr.exact +0 -0
  479. data/vendor/zstd/tests/cli-tests/determinism/multithread.sh.stdout.exact +260 -0
  480. data/vendor/zstd/tests/cli-tests/determinism/reuse.sh +44 -0
  481. data/vendor/zstd/tests/cli-tests/determinism/reuse.sh.stderr.exact +0 -0
  482. data/vendor/zstd/tests/cli-tests/determinism/reuse.sh.stdout.exact +19 -0
  483. data/vendor/zstd/tests/cli-tests/determinism/setup +5 -0
  484. data/vendor/zstd/tests/cli-tests/determinism/setup_once +30 -0
  485. data/vendor/zstd/tests/cli-tests/dict-builder/empty-input.sh +9 -0
  486. data/vendor/zstd/tests/cli-tests/dict-builder/empty-input.sh.stderr.exact +1 -0
  487. data/vendor/zstd/tests/cli-tests/dict-builder/no-inputs.sh +3 -0
  488. data/vendor/zstd/tests/cli-tests/dict-builder/no-inputs.sh.exit +1 -0
  489. data/vendor/zstd/tests/cli-tests/dict-builder/no-inputs.sh.stderr.exact +5 -0
  490. data/vendor/zstd/tests/cli-tests/dictionaries/dictionary-mismatch.sh +29 -0
  491. data/vendor/zstd/tests/cli-tests/dictionaries/dictionary-mismatch.sh.stderr.exact +7 -0
  492. data/vendor/zstd/tests/cli-tests/dictionaries/golden.sh +9 -0
  493. data/vendor/zstd/tests/cli-tests/dictionaries/setup +6 -0
  494. data/vendor/zstd/tests/cli-tests/dictionaries/setup_once +24 -0
  495. data/vendor/zstd/tests/cli-tests/file-handling/directory-mirror.sh +49 -0
  496. data/vendor/zstd/tests/cli-tests/file-handling/directory-mirror.sh.stderr.exact +0 -0
  497. data/vendor/zstd/tests/cli-tests/file-handling/directory-mirror.sh.stdout.exact +0 -0
  498. data/vendor/zstd/tests/cli-tests/file-stat/compress-file-to-dir-without-write-perm.sh +12 -0
  499. data/vendor/zstd/tests/cli-tests/file-stat/compress-file-to-dir-without-write-perm.sh.stderr.exact +30 -0
  500. data/vendor/zstd/tests/cli-tests/file-stat/compress-file-to-file.sh +9 -0
  501. data/vendor/zstd/tests/cli-tests/file-stat/compress-file-to-file.sh.stderr.glob +46 -0
  502. data/vendor/zstd/tests/cli-tests/file-stat/compress-file-to-stdout.sh +8 -0
  503. data/vendor/zstd/tests/cli-tests/file-stat/compress-file-to-stdout.sh.stderr.exact +24 -0
  504. data/vendor/zstd/tests/cli-tests/file-stat/compress-stdin-to-file.sh +8 -0
  505. data/vendor/zstd/tests/cli-tests/file-stat/compress-stdin-to-file.sh.stderr.glob +28 -0
  506. data/vendor/zstd/tests/cli-tests/file-stat/compress-stdin-to-stdout.sh +8 -0
  507. data/vendor/zstd/tests/cli-tests/file-stat/compress-stdin-to-stdout.sh.stderr.exact +18 -0
  508. data/vendor/zstd/tests/cli-tests/file-stat/decompress-file-to-file.sh +8 -0
  509. data/vendor/zstd/tests/cli-tests/file-stat/decompress-file-to-file.sh.stderr.glob +42 -0
  510. data/vendor/zstd/tests/cli-tests/file-stat/decompress-file-to-stdout.sh +7 -0
  511. data/vendor/zstd/tests/cli-tests/file-stat/decompress-file-to-stdout.sh.stderr.exact +18 -0
  512. data/vendor/zstd/tests/cli-tests/file-stat/decompress-stdin-to-file.sh +7 -0
  513. data/vendor/zstd/tests/cli-tests/file-stat/decompress-stdin-to-file.sh.stderr.glob +24 -0
  514. data/vendor/zstd/tests/cli-tests/file-stat/decompress-stdin-to-stdout.sh +7 -0
  515. data/vendor/zstd/tests/cli-tests/file-stat/decompress-stdin-to-stdout.sh.stderr.exact +14 -0
  516. data/vendor/zstd/tests/cli-tests/progress/no-progress.sh +46 -0
  517. data/vendor/zstd/tests/cli-tests/progress/no-progress.sh.stderr.glob +96 -0
  518. data/vendor/zstd/tests/cli-tests/progress/progress.sh +41 -0
  519. data/vendor/zstd/tests/cli-tests/progress/progress.sh.stderr.glob +62 -0
  520. data/vendor/zstd/tests/cli-tests/run.py +732 -0
  521. data/vendor/zstd/tests/cli-tests/zstd-symlinks/setup +6 -0
  522. data/vendor/zstd/tests/cli-tests/zstd-symlinks/zstdcat.sh +12 -0
  523. data/vendor/zstd/tests/cli-tests/zstd-symlinks/zstdcat.sh.stdout.exact +8 -0
  524. data/vendor/zstd/tests/datagencli.c +149 -0
  525. data/vendor/zstd/tests/decodecorpus.c +1998 -0
  526. data/vendor/zstd/tests/dict-files/zero-weight-dict +0 -0
  527. data/vendor/zstd/tests/external_matchfinder.c +140 -0
  528. data/vendor/zstd/tests/external_matchfinder.h +39 -0
  529. data/vendor/zstd/tests/fullbench.c +1210 -0
  530. data/vendor/zstd/tests/fuzz/Makefile +278 -0
  531. data/vendor/zstd/tests/fuzz/README.md +161 -0
  532. data/vendor/zstd/tests/fuzz/block_decompress.c +53 -0
  533. data/vendor/zstd/tests/fuzz/block_round_trip.c +103 -0
  534. data/vendor/zstd/tests/fuzz/decompress_cross_format.c +130 -0
  535. data/vendor/zstd/tests/fuzz/decompress_dstSize_tooSmall.c +74 -0
  536. data/vendor/zstd/tests/fuzz/dictionary_decompress.c +77 -0
  537. data/vendor/zstd/tests/fuzz/dictionary_loader.c +106 -0
  538. data/vendor/zstd/tests/fuzz/dictionary_round_trip.c +155 -0
  539. data/vendor/zstd/tests/fuzz/dictionary_stream_round_trip.c +209 -0
  540. data/vendor/zstd/tests/fuzz/fse_read_ncount.c +100 -0
  541. data/vendor/zstd/tests/fuzz/fuzz.h +57 -0
  542. data/vendor/zstd/tests/fuzz/fuzz.py +910 -0
  543. data/vendor/zstd/tests/fuzz/fuzz_data_producer.c +95 -0
  544. data/vendor/zstd/tests/fuzz/fuzz_data_producer.h +66 -0
  545. data/vendor/zstd/tests/fuzz/fuzz_helpers.c +47 -0
  546. data/vendor/zstd/tests/fuzz/fuzz_helpers.h +82 -0
  547. data/vendor/zstd/tests/fuzz/fuzz_third_party_seq_prod.h +116 -0
  548. data/vendor/zstd/tests/fuzz/generate_sequences.c +88 -0
  549. data/vendor/zstd/tests/fuzz/huf_decompress.c +68 -0
  550. data/vendor/zstd/tests/fuzz/huf_round_trip.c +137 -0
  551. data/vendor/zstd/tests/fuzz/raw_dictionary_round_trip.c +119 -0
  552. data/vendor/zstd/tests/fuzz/regression_driver.c +90 -0
  553. data/vendor/zstd/tests/fuzz/seekable_roundtrip.c +88 -0
  554. data/vendor/zstd/tests/fuzz/seq_prod_fuzz_example/Makefile +16 -0
  555. data/vendor/zstd/tests/fuzz/seq_prod_fuzz_example/README.md +12 -0
  556. data/vendor/zstd/tests/fuzz/seq_prod_fuzz_example/example_seq_prod.c +52 -0
  557. data/vendor/zstd/tests/fuzz/sequence_compression_api.c +452 -0
  558. data/vendor/zstd/tests/fuzz/simple_compress.c +60 -0
  559. data/vendor/zstd/tests/fuzz/simple_decompress.c +59 -0
  560. data/vendor/zstd/tests/fuzz/simple_round_trip.c +182 -0
  561. data/vendor/zstd/tests/fuzz/stream_decompress.c +119 -0
  562. data/vendor/zstd/tests/fuzz/stream_round_trip.c +218 -0
  563. data/vendor/zstd/tests/fuzz/zstd_frame_info.c +43 -0
  564. data/vendor/zstd/tests/fuzz/zstd_helpers.c +208 -0
  565. data/vendor/zstd/tests/fuzz/zstd_helpers.h +56 -0
  566. data/vendor/zstd/tests/fuzzer.c +5482 -0
  567. data/vendor/zstd/tests/golden-compression/PR-3517-block-splitter-corruption-test +1 -0
  568. data/vendor/zstd/tests/golden-compression/http +1 -0
  569. data/vendor/zstd/tests/golden-compression/huffman-compressed-larger +0 -0
  570. data/vendor/zstd/tests/golden-compression/large-literal-and-match-lengths +0 -0
  571. data/vendor/zstd/tests/golden-decompression/block-128k.zst +0 -0
  572. data/vendor/zstd/tests/golden-decompression/empty-block.zst +0 -0
  573. data/vendor/zstd/tests/golden-decompression/rle-first-block.zst +0 -0
  574. data/vendor/zstd/tests/golden-decompression/zeroSeq_2B.zst +0 -0
  575. data/vendor/zstd/tests/golden-decompression-errors/off0.bin.zst +0 -0
  576. data/vendor/zstd/tests/golden-decompression-errors/truncated_huff_state.zst +0 -0
  577. data/vendor/zstd/tests/golden-decompression-errors/zeroSeq_extraneous.zst +0 -0
  578. data/vendor/zstd/tests/golden-dictionaries/http-dict-missing-symbols +0 -0
  579. data/vendor/zstd/tests/gzip/Makefile +45 -0
  580. data/vendor/zstd/tests/gzip/gzip-env.sh +46 -0
  581. data/vendor/zstd/tests/gzip/helin-segv.sh +31 -0
  582. data/vendor/zstd/tests/gzip/help-version.sh +270 -0
  583. data/vendor/zstd/tests/gzip/hufts-segv.gz +0 -0
  584. data/vendor/zstd/tests/gzip/hufts.sh +34 -0
  585. data/vendor/zstd/tests/gzip/init.cfg +5 -0
  586. data/vendor/zstd/tests/gzip/init.sh +616 -0
  587. data/vendor/zstd/tests/gzip/keep.sh +51 -0
  588. data/vendor/zstd/tests/gzip/list.sh +31 -0
  589. data/vendor/zstd/tests/gzip/memcpy-abuse.sh +34 -0
  590. data/vendor/zstd/tests/gzip/mixed.sh +68 -0
  591. data/vendor/zstd/tests/gzip/null-suffix-clobber.sh +35 -0
  592. data/vendor/zstd/tests/gzip/stdin.sh +31 -0
  593. data/vendor/zstd/tests/gzip/test-driver.sh +150 -0
  594. data/vendor/zstd/tests/gzip/trailing-nul.sh +37 -0
  595. data/vendor/zstd/tests/gzip/unpack-invalid.sh +36 -0
  596. data/vendor/zstd/tests/gzip/z-suffix.sh +30 -0
  597. data/vendor/zstd/tests/gzip/zdiff.sh +48 -0
  598. data/vendor/zstd/tests/gzip/zgrep-context.sh +47 -0
  599. data/vendor/zstd/tests/gzip/zgrep-f.sh +43 -0
  600. data/vendor/zstd/tests/gzip/zgrep-signal.sh +64 -0
  601. data/vendor/zstd/tests/gzip/znew-k.sh +40 -0
  602. data/vendor/zstd/tests/invalidDictionaries.c +61 -0
  603. data/vendor/zstd/tests/largeDictionary.c +131 -0
  604. data/vendor/zstd/tests/legacy.c +262 -0
  605. data/vendor/zstd/tests/libzstd_builds.sh +104 -0
  606. data/vendor/zstd/tests/longmatch.c +123 -0
  607. data/vendor/zstd/tests/loremOut.c +50 -0
  608. data/vendor/zstd/tests/loremOut.h +15 -0
  609. data/vendor/zstd/tests/paramgrill.c +2965 -0
  610. data/vendor/zstd/tests/playTests.sh +1926 -0
  611. data/vendor/zstd/tests/poolTests.c +271 -0
  612. data/vendor/zstd/tests/rateLimiter.py +41 -0
  613. data/vendor/zstd/tests/regression/Makefile +60 -0
  614. data/vendor/zstd/tests/regression/README.md +28 -0
  615. data/vendor/zstd/tests/regression/config.c +404 -0
  616. data/vendor/zstd/tests/regression/config.h +91 -0
  617. data/vendor/zstd/tests/regression/data.c +631 -0
  618. data/vendor/zstd/tests/regression/data.h +121 -0
  619. data/vendor/zstd/tests/regression/levels.h +59 -0
  620. data/vendor/zstd/tests/regression/method.c +701 -0
  621. data/vendor/zstd/tests/regression/method.h +65 -0
  622. data/vendor/zstd/tests/regression/result.c +30 -0
  623. data/vendor/zstd/tests/regression/result.h +103 -0
  624. data/vendor/zstd/tests/regression/results.csv +1480 -0
  625. data/vendor/zstd/tests/regression/test.c +362 -0
  626. data/vendor/zstd/tests/roundTripCrash.c +241 -0
  627. data/vendor/zstd/tests/seqgen.c +260 -0
  628. data/vendor/zstd/tests/seqgen.h +58 -0
  629. data/vendor/zstd/tests/test-license.py +156 -0
  630. data/vendor/zstd/tests/test-variants.sh +115 -0
  631. data/vendor/zstd/tests/test-zstd-versions.py +308 -0
  632. data/vendor/zstd/tests/test_process_substitution.bash +92 -0
  633. data/vendor/zstd/tests/zstreamtest.c +3467 -0
  634. data/vendor/zstd/zlibWrapper/BUCK +22 -0
  635. data/vendor/zstd/zlibWrapper/Makefile +120 -0
  636. data/vendor/zstd/zlibWrapper/README.md +163 -0
  637. data/vendor/zstd/zlibWrapper/examples/example.c +598 -0
  638. data/vendor/zstd/zlibWrapper/examples/example_original.c +599 -0
  639. data/vendor/zstd/zlibWrapper/examples/fitblk.c +254 -0
  640. data/vendor/zstd/zlibWrapper/examples/fitblk_original.c +233 -0
  641. data/vendor/zstd/zlibWrapper/examples/minigzip.c +605 -0
  642. data/vendor/zstd/zlibWrapper/examples/zwrapbench.c +1018 -0
  643. data/vendor/zstd/zlibWrapper/gzclose.c +26 -0
  644. data/vendor/zstd/zlibWrapper/gzcompatibility.h +68 -0
  645. data/vendor/zstd/zlibWrapper/gzguts.h +229 -0
  646. data/vendor/zstd/zlibWrapper/gzlib.c +587 -0
  647. data/vendor/zstd/zlibWrapper/gzread.c +637 -0
  648. data/vendor/zstd/zlibWrapper/gzwrite.c +632 -0
  649. data/vendor/zstd/zlibWrapper/zstd_zlibwrapper.c +1200 -0
  650. data/vendor/zstd/zlibWrapper/zstd_zlibwrapper.h +91 -0
  651. metadata +738 -0
@@ -0,0 +1,766 @@
1
+ /*
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ * All rights reserved.
4
+ *
5
+ * This source code is licensed under both the BSD-style license (found in the
6
+ * LICENSE file in the root directory of this source tree) and the GPLv2 (found
7
+ * in the COPYING file in the root directory of this source tree).
8
+ * You may select, at your option, one of the above-listed licenses.
9
+ */
10
+
11
+ #include "../common/portability_macros.h"
12
+
13
+ #if defined(__ELF__) && defined(__GNUC__)
14
+ /* Stack marking
15
+ * ref: https://wiki.gentoo.org/wiki/Hardened/GNU_stack_quickstart
16
+ */
17
+ .section .note.GNU-stack,"",%progbits
18
+
19
+ #if defined(__aarch64__)
20
+ /* Mark that this assembly supports BTI & PAC, because it is empty for aarch64.
21
+ * See: https://github.com/facebook/zstd/issues/3841
22
+ * See: https://gcc.godbolt.org/z/sqr5T4ffK
23
+ * See: https://lore.kernel.org/linux-arm-kernel/20200429211641.9279-8-broonie@kernel.org/
24
+ * See: https://reviews.llvm.org/D62609
25
+ */
26
+ .pushsection .note.gnu.property, "a"
27
+ .p2align 3
28
+ .long 4 /* size of the name - "GNU\0" */
29
+ .long 0x10 /* size of descriptor */
30
+ .long 0x5 /* NT_GNU_PROPERTY_TYPE_0 */
31
+ .asciz "GNU"
32
+ .long 0xc0000000 /* pr_type - GNU_PROPERTY_AARCH64_FEATURE_1_AND */
33
+ .long 4 /* pr_datasz - 4 bytes */
34
+ .long 3 /* pr_data - GNU_PROPERTY_AARCH64_FEATURE_1_BTI | GNU_PROPERTY_AARCH64_FEATURE_1_PAC */
35
+ .p2align 3 /* pr_padding - bring everything to 8 byte alignment */
36
+ .popsection
37
+ #endif
38
+
39
+ #endif
40
+
41
+ // There appears to be an unreconcilable syntax difference between Linux and Darwin assemblers.
42
+ // Name of a private label (i.e. not exported to symbol table) on Darwin has to start with "L",
43
+ // on Linux has to start with ".". There's no way to have a name start with both "." and "L", so
44
+ // we have to use a macro.
45
+ #if defined(__APPLE__)
46
+ #define LOCAL_LABEL(label) L_ ## label
47
+ #else
48
+ #define LOCAL_LABEL(label) .L_ ## label
49
+ #endif
50
+
51
+ #if ZSTD_ENABLE_ASM_X86_64_BMI2
52
+
53
+ /* Calling convention:
54
+ *
55
+ * %rdi (or %rcx on Windows) contains the first argument: HUF_DecompressAsmArgs*.
56
+ * %rbp isn't maintained (no frame pointer).
57
+ * %rsp contains the stack pointer that grows down.
58
+ * No red-zone is assumed, only addresses >= %rsp are used.
59
+ * All register contents are preserved.
60
+ */
61
+
62
+ ZSTD_HIDE_ASM_FUNCTION(HUF_decompress4X1_usingDTable_internal_fast_asm_loop)
63
+ ZSTD_HIDE_ASM_FUNCTION(HUF_decompress4X2_usingDTable_internal_fast_asm_loop)
64
+ ZSTD_HIDE_ASM_FUNCTION(_HUF_decompress4X2_usingDTable_internal_fast_asm_loop)
65
+ ZSTD_HIDE_ASM_FUNCTION(_HUF_decompress4X1_usingDTable_internal_fast_asm_loop)
66
+ .global HUF_decompress4X1_usingDTable_internal_fast_asm_loop
67
+ .global HUF_decompress4X2_usingDTable_internal_fast_asm_loop
68
+ .global _HUF_decompress4X1_usingDTable_internal_fast_asm_loop
69
+ .global _HUF_decompress4X2_usingDTable_internal_fast_asm_loop
70
+ .text
71
+
72
+ /* Sets up register mappings for clarity.
73
+ * op[], bits[], dtable & ip[0] each get their own register.
74
+ * ip[1,2,3] & olimit alias var[].
75
+ * %rax is a scratch register.
76
+ */
77
+
78
+ #define op0 rsi
79
+ #define op1 rbx
80
+ #define op2 rcx
81
+ #define op3 rdi
82
+
83
+ #define ip0 r8
84
+ #define ip1 r9
85
+ #define ip2 r10
86
+ #define ip3 r11
87
+
88
+ #define bits0 rbp
89
+ #define bits1 rdx
90
+ #define bits2 r12
91
+ #define bits3 r13
92
+ #define dtable r14
93
+ #define olimit r15
94
+
95
+ /* var[] aliases ip[1,2,3] & olimit
96
+ * ip[1,2,3] are saved every iteration.
97
+ * olimit is only used in compute_olimit.
98
+ */
99
+ #define var0 r15
100
+ #define var1 r9
101
+ #define var2 r10
102
+ #define var3 r11
103
+
104
+ /* 32-bit var registers */
105
+ #define vard0 r15d
106
+ #define vard1 r9d
107
+ #define vard2 r10d
108
+ #define vard3 r11d
109
+
110
+ /* Calls X(N) for each stream 0, 1, 2, 3. */
111
+ #define FOR_EACH_STREAM(X) \
112
+ X(0); \
113
+ X(1); \
114
+ X(2); \
115
+ X(3)
116
+
117
+ /* Calls X(N, idx) for each stream 0, 1, 2, 3. */
118
+ #define FOR_EACH_STREAM_WITH_INDEX(X, idx) \
119
+ X(0, idx); \
120
+ X(1, idx); \
121
+ X(2, idx); \
122
+ X(3, idx)
123
+
124
+ /* Define both _HUF_* & HUF_* symbols because MacOS
125
+ * C symbols are prefixed with '_' & Linux symbols aren't.
126
+ */
127
+ _HUF_decompress4X1_usingDTable_internal_fast_asm_loop:
128
+ HUF_decompress4X1_usingDTable_internal_fast_asm_loop:
129
+ ZSTD_CET_ENDBRANCH
130
+ .cfi_startproc
131
+ .cfi_def_cfa_offset 8
132
+ .cfi_offset %rip, -8
133
+ /* Save all registers - even if they are callee saved for simplicity. */
134
+ push %rax
135
+ .cfi_def_cfa_offset 16
136
+ .cfi_offset rax, -16
137
+ push %rbx
138
+ .cfi_def_cfa_offset 24
139
+ .cfi_offset rbx, -24
140
+ push %rcx
141
+ .cfi_def_cfa_offset 32
142
+ .cfi_offset rcx, -32
143
+ push %rdx
144
+ .cfi_def_cfa_offset 40
145
+ .cfi_offset rdx, -40
146
+ push %rbp
147
+ .cfi_def_cfa_offset 48
148
+ .cfi_offset rbp, -48
149
+ push %rsi
150
+ .cfi_def_cfa_offset 56
151
+ .cfi_offset rsi, -56
152
+ push %rdi
153
+ .cfi_def_cfa_offset 64
154
+ .cfi_offset rdi, -64
155
+ push %r8
156
+ .cfi_def_cfa_offset 72
157
+ .cfi_offset r8, -72
158
+ push %r9
159
+ .cfi_def_cfa_offset 80
160
+ .cfi_offset r9, -80
161
+ push %r10
162
+ .cfi_def_cfa_offset 88
163
+ .cfi_offset r10, -88
164
+ push %r11
165
+ .cfi_def_cfa_offset 96
166
+ .cfi_offset r11, -96
167
+ push %r12
168
+ .cfi_def_cfa_offset 104
169
+ .cfi_offset r12, -104
170
+ push %r13
171
+ .cfi_def_cfa_offset 112
172
+ .cfi_offset r13, -112
173
+ push %r14
174
+ .cfi_def_cfa_offset 120
175
+ .cfi_offset r14, -120
176
+ push %r15
177
+ .cfi_def_cfa_offset 128
178
+ .cfi_offset r15, -128
179
+
180
+ /* Read HUF_DecompressAsmArgs* args from %rax */
181
+ #if defined(_WIN32)
182
+ movq %rcx, %rax
183
+ #else
184
+ movq %rdi, %rax
185
+ #endif
186
+ movq 0(%rax), %ip0
187
+ movq 8(%rax), %ip1
188
+ movq 16(%rax), %ip2
189
+ movq 24(%rax), %ip3
190
+ movq 32(%rax), %op0
191
+ movq 40(%rax), %op1
192
+ movq 48(%rax), %op2
193
+ movq 56(%rax), %op3
194
+ movq 64(%rax), %bits0
195
+ movq 72(%rax), %bits1
196
+ movq 80(%rax), %bits2
197
+ movq 88(%rax), %bits3
198
+ movq 96(%rax), %dtable
199
+ push %rax /* argument */
200
+ .cfi_def_cfa_offset 136
201
+ push 104(%rax) /* ilowest */
202
+ .cfi_def_cfa_offset 144
203
+ push 112(%rax) /* oend */
204
+ .cfi_def_cfa_offset 152
205
+ push %olimit /* olimit space */
206
+ .cfi_def_cfa_offset 160
207
+
208
+ subq $24, %rsp
209
+ .cfi_def_cfa_offset 184
210
+
211
+ LOCAL_LABEL(4X1_compute_olimit):
212
+ /* Computes how many iterations we can do safely
213
+ * %r15, %rax may be clobbered
214
+ * rbx, rdx must be saved
215
+ * op3 & ip0 mustn't be clobbered
216
+ */
217
+ movq %rbx, 0(%rsp)
218
+ movq %rdx, 8(%rsp)
219
+
220
+ movq 32(%rsp), %rax /* rax = oend */
221
+ subq %op3, %rax /* rax = oend - op3 */
222
+
223
+ /* r15 = (oend - op3) / 5 */
224
+ movabsq $-3689348814741910323, %rdx
225
+ mulq %rdx
226
+ movq %rdx, %r15
227
+ shrq $2, %r15
228
+
229
+ movq %ip0, %rax /* rax = ip0 */
230
+ movq 40(%rsp), %rdx /* rdx = ilowest */
231
+ subq %rdx, %rax /* rax = ip0 - ilowest */
232
+ movq %rax, %rbx /* rbx = ip0 - ilowest */
233
+
234
+ /* rdx = (ip0 - ilowest) / 7 */
235
+ movabsq $2635249153387078803, %rdx
236
+ mulq %rdx
237
+ subq %rdx, %rbx
238
+ shrq %rbx
239
+ addq %rbx, %rdx
240
+ shrq $2, %rdx
241
+
242
+ /* r15 = min(%rdx, %r15) */
243
+ cmpq %rdx, %r15
244
+ cmova %rdx, %r15
245
+
246
+ /* r15 = r15 * 5 */
247
+ leaq (%r15, %r15, 4), %r15
248
+
249
+ /* olimit = op3 + r15 */
250
+ addq %op3, %olimit
251
+
252
+ movq 8(%rsp), %rdx
253
+ movq 0(%rsp), %rbx
254
+
255
+ /* If (op3 + 20 > olimit) */
256
+ movq %op3, %rax /* rax = op3 */
257
+ cmpq %rax, %olimit /* op3 == olimit */
258
+ je LOCAL_LABEL(4X1_exit)
259
+
260
+ /* If (ip1 < ip0) go to exit */
261
+ cmpq %ip0, %ip1
262
+ jb LOCAL_LABEL(4X1_exit)
263
+
264
+ /* If (ip2 < ip1) go to exit */
265
+ cmpq %ip1, %ip2
266
+ jb LOCAL_LABEL(4X1_exit)
267
+
268
+ /* If (ip3 < ip2) go to exit */
269
+ cmpq %ip2, %ip3
270
+ jb LOCAL_LABEL(4X1_exit)
271
+
272
+ /* Reads top 11 bits from bits[n]
273
+ * Loads dt[bits[n]] into var[n]
274
+ */
275
+ #define GET_NEXT_DELT(n) \
276
+ movq $53, %var##n; \
277
+ shrxq %var##n, %bits##n, %var##n; \
278
+ movzwl (%dtable,%var##n,2),%vard##n
279
+
280
+ /* var[n] must contain the DTable entry computed with GET_NEXT_DELT
281
+ * Moves var[n] to %rax
282
+ * bits[n] <<= var[n] & 63
283
+ * op[n][idx] = %rax >> 8
284
+ * %ah is a way to access bits [8, 16) of %rax
285
+ */
286
+ #define DECODE_FROM_DELT(n, idx) \
287
+ movq %var##n, %rax; \
288
+ shlxq %var##n, %bits##n, %bits##n; \
289
+ movb %ah, idx(%op##n)
290
+
291
+ /* Assumes GET_NEXT_DELT has been called.
292
+ * Calls DECODE_FROM_DELT then GET_NEXT_DELT
293
+ */
294
+ #define DECODE_AND_GET_NEXT(n, idx) \
295
+ DECODE_FROM_DELT(n, idx); \
296
+ GET_NEXT_DELT(n) \
297
+
298
+ /* // ctz & nbBytes is stored in bits[n]
299
+ * // nbBits is stored in %rax
300
+ * ctz = CTZ[bits[n]]
301
+ * nbBits = ctz & 7
302
+ * nbBytes = ctz >> 3
303
+ * op[n] += 5
304
+ * ip[n] -= nbBytes
305
+ * // Note: x86-64 is little-endian ==> no bswap
306
+ * bits[n] = MEM_readST(ip[n]) | 1
307
+ * bits[n] <<= nbBits
308
+ */
309
+ #define RELOAD_BITS(n) \
310
+ bsfq %bits##n, %bits##n; \
311
+ movq %bits##n, %rax; \
312
+ andq $7, %rax; \
313
+ shrq $3, %bits##n; \
314
+ leaq 5(%op##n), %op##n; \
315
+ subq %bits##n, %ip##n; \
316
+ movq (%ip##n), %bits##n; \
317
+ orq $1, %bits##n; \
318
+ shlx %rax, %bits##n, %bits##n
319
+
320
+ /* Store clobbered variables on the stack */
321
+ movq %olimit, 24(%rsp)
322
+ movq %ip1, 0(%rsp)
323
+ movq %ip2, 8(%rsp)
324
+ movq %ip3, 16(%rsp)
325
+
326
+ /* Call GET_NEXT_DELT for each stream */
327
+ FOR_EACH_STREAM(GET_NEXT_DELT)
328
+
329
+ .p2align 6
330
+
331
+ LOCAL_LABEL(4X1_loop_body):
332
+ /* Decode 5 symbols in each of the 4 streams (20 total)
333
+ * Must have called GET_NEXT_DELT for each stream
334
+ */
335
+ FOR_EACH_STREAM_WITH_INDEX(DECODE_AND_GET_NEXT, 0)
336
+ FOR_EACH_STREAM_WITH_INDEX(DECODE_AND_GET_NEXT, 1)
337
+ FOR_EACH_STREAM_WITH_INDEX(DECODE_AND_GET_NEXT, 2)
338
+ FOR_EACH_STREAM_WITH_INDEX(DECODE_AND_GET_NEXT, 3)
339
+ FOR_EACH_STREAM_WITH_INDEX(DECODE_FROM_DELT, 4)
340
+
341
+ /* Load ip[1,2,3] from stack (var[] aliases them)
342
+ * ip[] is needed for RELOAD_BITS
343
+ * Each will be stored back to the stack after RELOAD
344
+ */
345
+ movq 0(%rsp), %ip1
346
+ movq 8(%rsp), %ip2
347
+ movq 16(%rsp), %ip3
348
+
349
+ /* Reload each stream & fetch the next table entry
350
+ * to prepare for the next iteration
351
+ */
352
+ RELOAD_BITS(0)
353
+ GET_NEXT_DELT(0)
354
+
355
+ RELOAD_BITS(1)
356
+ movq %ip1, 0(%rsp)
357
+ GET_NEXT_DELT(1)
358
+
359
+ RELOAD_BITS(2)
360
+ movq %ip2, 8(%rsp)
361
+ GET_NEXT_DELT(2)
362
+
363
+ RELOAD_BITS(3)
364
+ movq %ip3, 16(%rsp)
365
+ GET_NEXT_DELT(3)
366
+
367
+ /* If op3 < olimit: continue the loop */
368
+ cmp %op3, 24(%rsp)
369
+ ja LOCAL_LABEL(4X1_loop_body)
370
+
371
+ /* Reload ip[1,2,3] from stack */
372
+ movq 0(%rsp), %ip1
373
+ movq 8(%rsp), %ip2
374
+ movq 16(%rsp), %ip3
375
+
376
+ /* Re-compute olimit */
377
+ jmp LOCAL_LABEL(4X1_compute_olimit)
378
+
379
+ #undef GET_NEXT_DELT
380
+ #undef DECODE_FROM_DELT
381
+ #undef DECODE
382
+ #undef RELOAD_BITS
383
+ LOCAL_LABEL(4X1_exit):
384
+ addq $24, %rsp
385
+ .cfi_def_cfa_offset 160
386
+
387
+ /* Restore stack (oend & olimit) */
388
+ pop %rax /* olimit */
389
+ .cfi_def_cfa_offset 152
390
+ pop %rax /* oend */
391
+ .cfi_def_cfa_offset 144
392
+ pop %rax /* ilowest */
393
+ .cfi_def_cfa_offset 136
394
+ pop %rax /* arg */
395
+ .cfi_def_cfa_offset 128
396
+
397
+ /* Save ip / op / bits */
398
+ movq %ip0, 0(%rax)
399
+ movq %ip1, 8(%rax)
400
+ movq %ip2, 16(%rax)
401
+ movq %ip3, 24(%rax)
402
+ movq %op0, 32(%rax)
403
+ movq %op1, 40(%rax)
404
+ movq %op2, 48(%rax)
405
+ movq %op3, 56(%rax)
406
+ movq %bits0, 64(%rax)
407
+ movq %bits1, 72(%rax)
408
+ movq %bits2, 80(%rax)
409
+ movq %bits3, 88(%rax)
410
+
411
+ /* Restore registers */
412
+ pop %r15
413
+ .cfi_restore r15
414
+ .cfi_def_cfa_offset 120
415
+ pop %r14
416
+ .cfi_restore r14
417
+ .cfi_def_cfa_offset 112
418
+ pop %r13
419
+ .cfi_restore r13
420
+ .cfi_def_cfa_offset 104
421
+ pop %r12
422
+ .cfi_restore r12
423
+ .cfi_def_cfa_offset 96
424
+ pop %r11
425
+ .cfi_restore r11
426
+ .cfi_def_cfa_offset 88
427
+ pop %r10
428
+ .cfi_restore r10
429
+ .cfi_def_cfa_offset 80
430
+ pop %r9
431
+ .cfi_restore r9
432
+ .cfi_def_cfa_offset 72
433
+ pop %r8
434
+ .cfi_restore r8
435
+ .cfi_def_cfa_offset 64
436
+ pop %rdi
437
+ .cfi_restore rdi
438
+ .cfi_def_cfa_offset 56
439
+ pop %rsi
440
+ .cfi_restore rsi
441
+ .cfi_def_cfa_offset 48
442
+ pop %rbp
443
+ .cfi_restore rbp
444
+ .cfi_def_cfa_offset 40
445
+ pop %rdx
446
+ .cfi_restore rdx
447
+ .cfi_def_cfa_offset 32
448
+ pop %rcx
449
+ .cfi_restore rcx
450
+ .cfi_def_cfa_offset 24
451
+ pop %rbx
452
+ .cfi_restore rbx
453
+ .cfi_def_cfa_offset 16
454
+ pop %rax
455
+ .cfi_restore rax
456
+ .cfi_def_cfa_offset 8
457
+ ret
458
+ .cfi_endproc
459
+
460
+ _HUF_decompress4X2_usingDTable_internal_fast_asm_loop:
461
+ HUF_decompress4X2_usingDTable_internal_fast_asm_loop:
462
+ ZSTD_CET_ENDBRANCH
463
+ .cfi_startproc
464
+ .cfi_def_cfa_offset 8
465
+ .cfi_offset %rip, -8
466
+ /* Save all registers - even if they are callee saved for simplicity. */
467
+ push %rax
468
+ .cfi_def_cfa_offset 16
469
+ .cfi_offset rax, -16
470
+ push %rbx
471
+ .cfi_def_cfa_offset 24
472
+ .cfi_offset rbx, -24
473
+ push %rcx
474
+ .cfi_def_cfa_offset 32
475
+ .cfi_offset rcx, -32
476
+ push %rdx
477
+ .cfi_def_cfa_offset 40
478
+ .cfi_offset rdx, -40
479
+ push %rbp
480
+ .cfi_def_cfa_offset 48
481
+ .cfi_offset rbp, -48
482
+ push %rsi
483
+ .cfi_def_cfa_offset 56
484
+ .cfi_offset rsi, -56
485
+ push %rdi
486
+ .cfi_def_cfa_offset 64
487
+ .cfi_offset rdi, -64
488
+ push %r8
489
+ .cfi_def_cfa_offset 72
490
+ .cfi_offset r8, -72
491
+ push %r9
492
+ .cfi_def_cfa_offset 80
493
+ .cfi_offset r9, -80
494
+ push %r10
495
+ .cfi_def_cfa_offset 88
496
+ .cfi_offset r10, -88
497
+ push %r11
498
+ .cfi_def_cfa_offset 96
499
+ .cfi_offset r11, -96
500
+ push %r12
501
+ .cfi_def_cfa_offset 104
502
+ .cfi_offset r12, -104
503
+ push %r13
504
+ .cfi_def_cfa_offset 112
505
+ .cfi_offset r13, -112
506
+ push %r14
507
+ .cfi_def_cfa_offset 120
508
+ .cfi_offset r14, -120
509
+ push %r15
510
+ .cfi_def_cfa_offset 128
511
+ .cfi_offset r15, -128
512
+
513
+ /* Read HUF_DecompressAsmArgs* args from %rax */
514
+ #if defined(_WIN32)
515
+ movq %rcx, %rax
516
+ #else
517
+ movq %rdi, %rax
518
+ #endif
519
+ movq 0(%rax), %ip0
520
+ movq 8(%rax), %ip1
521
+ movq 16(%rax), %ip2
522
+ movq 24(%rax), %ip3
523
+ movq 32(%rax), %op0
524
+ movq 40(%rax), %op1
525
+ movq 48(%rax), %op2
526
+ movq 56(%rax), %op3
527
+ movq 64(%rax), %bits0
528
+ movq 72(%rax), %bits1
529
+ movq 80(%rax), %bits2
530
+ movq 88(%rax), %bits3
531
+ movq 96(%rax), %dtable
532
+ push %rax /* argument */
533
+ .cfi_def_cfa_offset 136
534
+ push %rax /* olimit */
535
+ .cfi_def_cfa_offset 144
536
+ push 104(%rax) /* ilowest */
537
+ .cfi_def_cfa_offset 152
538
+
539
+ movq 112(%rax), %rax
540
+ push %rax /* oend3 */
541
+ .cfi_def_cfa_offset 160
542
+
543
+ movq %op3, %rax
544
+ push %rax /* oend2 */
545
+ .cfi_def_cfa_offset 168
546
+
547
+ movq %op2, %rax
548
+ push %rax /* oend1 */
549
+ .cfi_def_cfa_offset 176
550
+
551
+ movq %op1, %rax
552
+ push %rax /* oend0 */
553
+ .cfi_def_cfa_offset 184
554
+
555
+ /* Scratch space */
556
+ subq $8, %rsp
557
+ .cfi_def_cfa_offset 192
558
+
559
+ LOCAL_LABEL(4X2_compute_olimit):
560
+ /* Computes how many iterations we can do safely
561
+ * %r15, %rax may be clobbered
562
+ * rdx must be saved
563
+ * op[1,2,3,4] & ip0 mustn't be clobbered
564
+ */
565
+ movq %rdx, 0(%rsp)
566
+
567
+ /* We can consume up to 7 input bytes each iteration. */
568
+ movq %ip0, %rax /* rax = ip0 */
569
+ movq 40(%rsp), %rdx /* rdx = ilowest */
570
+ subq %rdx, %rax /* rax = ip0 - ilowest */
571
+ movq %rax, %r15 /* r15 = ip0 - ilowest */
572
+
573
+ /* rdx = rax / 7 */
574
+ movabsq $2635249153387078803, %rdx
575
+ mulq %rdx
576
+ subq %rdx, %r15
577
+ shrq %r15
578
+ addq %r15, %rdx
579
+ shrq $2, %rdx
580
+
581
+ /* r15 = (ip0 - ilowest) / 7 */
582
+ movq %rdx, %r15
583
+
584
+ /* r15 = min(r15, min(oend0 - op0, oend1 - op1, oend2 - op2, oend3 - op3) / 10) */
585
+ movq 8(%rsp), %rax /* rax = oend0 */
586
+ subq %op0, %rax /* rax = oend0 - op0 */
587
+ movq 16(%rsp), %rdx /* rdx = oend1 */
588
+ subq %op1, %rdx /* rdx = oend1 - op1 */
589
+
590
+ cmpq %rax, %rdx
591
+ cmova %rax, %rdx /* rdx = min(%rdx, %rax) */
592
+
593
+ movq 24(%rsp), %rax /* rax = oend2 */
594
+ subq %op2, %rax /* rax = oend2 - op2 */
595
+
596
+ cmpq %rax, %rdx
597
+ cmova %rax, %rdx /* rdx = min(%rdx, %rax) */
598
+
599
+ movq 32(%rsp), %rax /* rax = oend3 */
600
+ subq %op3, %rax /* rax = oend3 - op3 */
601
+
602
+ cmpq %rax, %rdx
603
+ cmova %rax, %rdx /* rdx = min(%rdx, %rax) */
604
+
605
+ movabsq $-3689348814741910323, %rax
606
+ mulq %rdx
607
+ shrq $3, %rdx /* rdx = rdx / 10 */
608
+
609
+ /* r15 = min(%rdx, %r15) */
610
+ cmpq %rdx, %r15
611
+ cmova %rdx, %r15
612
+
613
+ /* olimit = op3 + 5 * r15 */
614
+ movq %r15, %rax
615
+ leaq (%op3, %rax, 4), %olimit
616
+ addq %rax, %olimit
617
+
618
+ movq 0(%rsp), %rdx
619
+
620
+ /* If (op3 + 10 > olimit) */
621
+ movq %op3, %rax /* rax = op3 */
622
+ cmpq %rax, %olimit /* op3 == olimit */
623
+ je LOCAL_LABEL(4X2_exit)
624
+
625
+ /* If (ip1 < ip0) go to exit */
626
+ cmpq %ip0, %ip1
627
+ jb LOCAL_LABEL(4X2_exit)
628
+
629
+ /* If (ip2 < ip1) go to exit */
630
+ cmpq %ip1, %ip2
631
+ jb LOCAL_LABEL(4X2_exit)
632
+
633
+ /* If (ip3 < ip2) go to exit */
634
+ cmpq %ip2, %ip3
635
+ jb LOCAL_LABEL(4X2_exit)
636
+
637
+ #define DECODE(n, idx) \
638
+ movq %bits##n, %rax; \
639
+ shrq $53, %rax; \
640
+ movzwl 0(%dtable,%rax,4),%r8d; \
641
+ movzbl 2(%dtable,%rax,4),%r15d; \
642
+ movzbl 3(%dtable,%rax,4),%eax; \
643
+ movw %r8w, (%op##n); \
644
+ shlxq %r15, %bits##n, %bits##n; \
645
+ addq %rax, %op##n
646
+
647
+ #define RELOAD_BITS(n) \
648
+ bsfq %bits##n, %bits##n; \
649
+ movq %bits##n, %rax; \
650
+ shrq $3, %bits##n; \
651
+ andq $7, %rax; \
652
+ subq %bits##n, %ip##n; \
653
+ movq (%ip##n), %bits##n; \
654
+ orq $1, %bits##n; \
655
+ shlxq %rax, %bits##n, %bits##n
656
+
657
+
658
+ movq %olimit, 48(%rsp)
659
+
660
+ .p2align 6
661
+
662
+ LOCAL_LABEL(4X2_loop_body):
663
+ /* We clobber r8, so store it on the stack */
664
+ movq %r8, 0(%rsp)
665
+
666
+ /* Decode 5 symbols from each of the 4 streams (20 symbols total). */
667
+ FOR_EACH_STREAM_WITH_INDEX(DECODE, 0)
668
+ FOR_EACH_STREAM_WITH_INDEX(DECODE, 1)
669
+ FOR_EACH_STREAM_WITH_INDEX(DECODE, 2)
670
+ FOR_EACH_STREAM_WITH_INDEX(DECODE, 3)
671
+ FOR_EACH_STREAM_WITH_INDEX(DECODE, 4)
672
+
673
+ /* Reload r8 */
674
+ movq 0(%rsp), %r8
675
+
676
+ FOR_EACH_STREAM(RELOAD_BITS)
677
+
678
+ cmp %op3, 48(%rsp)
679
+ ja LOCAL_LABEL(4X2_loop_body)
680
+ jmp LOCAL_LABEL(4X2_compute_olimit)
681
+
682
+ #undef DECODE
683
+ #undef RELOAD_BITS
684
+ LOCAL_LABEL(4X2_exit):
685
+ addq $8, %rsp
686
+ .cfi_def_cfa_offset 184
687
+ /* Restore stack (oend & olimit) */
688
+ pop %rax /* oend0 */
689
+ .cfi_def_cfa_offset 176
690
+ pop %rax /* oend1 */
691
+ .cfi_def_cfa_offset 168
692
+ pop %rax /* oend2 */
693
+ .cfi_def_cfa_offset 160
694
+ pop %rax /* oend3 */
695
+ .cfi_def_cfa_offset 152
696
+ pop %rax /* ilowest */
697
+ .cfi_def_cfa_offset 144
698
+ pop %rax /* olimit */
699
+ .cfi_def_cfa_offset 136
700
+ pop %rax /* arg */
701
+ .cfi_def_cfa_offset 128
702
+
703
+ /* Save ip / op / bits */
704
+ movq %ip0, 0(%rax)
705
+ movq %ip1, 8(%rax)
706
+ movq %ip2, 16(%rax)
707
+ movq %ip3, 24(%rax)
708
+ movq %op0, 32(%rax)
709
+ movq %op1, 40(%rax)
710
+ movq %op2, 48(%rax)
711
+ movq %op3, 56(%rax)
712
+ movq %bits0, 64(%rax)
713
+ movq %bits1, 72(%rax)
714
+ movq %bits2, 80(%rax)
715
+ movq %bits3, 88(%rax)
716
+
717
+ /* Restore registers */
718
+ pop %r15
719
+ .cfi_restore r15
720
+ .cfi_def_cfa_offset 120
721
+ pop %r14
722
+ .cfi_restore r14
723
+ .cfi_def_cfa_offset 112
724
+ pop %r13
725
+ .cfi_restore r13
726
+ .cfi_def_cfa_offset 104
727
+ pop %r12
728
+ .cfi_restore r12
729
+ .cfi_def_cfa_offset 96
730
+ pop %r11
731
+ .cfi_restore r11
732
+ .cfi_def_cfa_offset 88
733
+ pop %r10
734
+ .cfi_restore r10
735
+ .cfi_def_cfa_offset 80
736
+ pop %r9
737
+ .cfi_restore r9
738
+ .cfi_def_cfa_offset 72
739
+ pop %r8
740
+ .cfi_restore r8
741
+ .cfi_def_cfa_offset 64
742
+ pop %rdi
743
+ .cfi_restore rdi
744
+ .cfi_def_cfa_offset 56
745
+ pop %rsi
746
+ .cfi_restore rsi
747
+ .cfi_def_cfa_offset 48
748
+ pop %rbp
749
+ .cfi_restore rbp
750
+ .cfi_def_cfa_offset 40
751
+ pop %rdx
752
+ .cfi_restore rdx
753
+ .cfi_def_cfa_offset 32
754
+ pop %rcx
755
+ .cfi_restore rcx
756
+ .cfi_def_cfa_offset 24
757
+ pop %rbx
758
+ .cfi_restore rbx
759
+ .cfi_def_cfa_offset 16
760
+ pop %rax
761
+ .cfi_restore rax
762
+ .cfi_def_cfa_offset 8
763
+ ret
764
+ .cfi_endproc
765
+
766
+ #endif