epeg 1.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 (504) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +4 -0
  3. data/MANIFEST +5 -0
  4. data/TODO +1 -0
  5. data/epeg/.dockerignore +4 -0
  6. data/epeg/.gitignore +5 -0
  7. data/epeg/CMakeLists.txt +30 -0
  8. data/epeg/Dockerfile +23 -0
  9. data/epeg/Epeg.h +90 -0
  10. data/epeg/README.md +42 -0
  11. data/epeg/epeg_main.c +1642 -0
  12. data/epeg/epeg_private.h +85 -0
  13. data/epeg/example/.gitignore +1 -0
  14. data/epeg/example/CMakeLists.txt +20 -0
  15. data/epeg/example/example.jpg +0 -0
  16. data/epeg/example/rotatetest.c +29 -0
  17. data/epeg/example/scaletest.c +48 -0
  18. data/epeg/vendor/libjpeg-turbo-2.0.4/BUILDING.md +828 -0
  19. data/epeg/vendor/libjpeg-turbo-2.0.4/CMakeLists.txt +1420 -0
  20. data/epeg/vendor/libjpeg-turbo-2.0.4/ChangeLog.md +1494 -0
  21. data/epeg/vendor/libjpeg-turbo-2.0.4/LICENSE.md +132 -0
  22. data/epeg/vendor/libjpeg-turbo-2.0.4/README.ijg +277 -0
  23. data/epeg/vendor/libjpeg-turbo-2.0.4/README.md +356 -0
  24. data/epeg/vendor/libjpeg-turbo-2.0.4/cderror.h +137 -0
  25. data/epeg/vendor/libjpeg-turbo-2.0.4/cdjpeg.c +145 -0
  26. data/epeg/vendor/libjpeg-turbo-2.0.4/cdjpeg.h +157 -0
  27. data/epeg/vendor/libjpeg-turbo-2.0.4/change.log +315 -0
  28. data/epeg/vendor/libjpeg-turbo-2.0.4/cjpeg.1 +354 -0
  29. data/epeg/vendor/libjpeg-turbo-2.0.4/cjpeg.c +695 -0
  30. data/epeg/vendor/libjpeg-turbo-2.0.4/cmakescripts/BuildPackages.cmake +182 -0
  31. data/epeg/vendor/libjpeg-turbo-2.0.4/cmakescripts/GNUInstallDirs.cmake +416 -0
  32. data/epeg/vendor/libjpeg-turbo-2.0.4/cmakescripts/cmake_uninstall.cmake.in +24 -0
  33. data/epeg/vendor/libjpeg-turbo-2.0.4/cmakescripts/testclean.cmake +41 -0
  34. data/epeg/vendor/libjpeg-turbo-2.0.4/cmyk.h +61 -0
  35. data/epeg/vendor/libjpeg-turbo-2.0.4/coderules.txt +78 -0
  36. data/epeg/vendor/libjpeg-turbo-2.0.4/djpeg.1 +296 -0
  37. data/epeg/vendor/libjpeg-turbo-2.0.4/djpeg.c +822 -0
  38. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/annotated.html +104 -0
  39. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/bc_s.png +0 -0
  40. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/bdwn.png +0 -0
  41. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/classes.html +106 -0
  42. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/closed.png +0 -0
  43. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/doxygen-extra.css +3 -0
  44. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/doxygen.css +1184 -0
  45. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/doxygen.png +0 -0
  46. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/dynsections.js +97 -0
  47. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/ftv2blank.png +0 -0
  48. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/ftv2cl.png +0 -0
  49. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/ftv2doc.png +0 -0
  50. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/ftv2folderclosed.png +0 -0
  51. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/ftv2folderopen.png +0 -0
  52. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/ftv2lastnode.png +0 -0
  53. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/ftv2link.png +0 -0
  54. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/ftv2mlastnode.png +0 -0
  55. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/ftv2mnode.png +0 -0
  56. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/ftv2mo.png +0 -0
  57. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/ftv2node.png +0 -0
  58. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/ftv2ns.png +0 -0
  59. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/ftv2plastnode.png +0 -0
  60. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/ftv2pnode.png +0 -0
  61. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/ftv2splitbar.png +0 -0
  62. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/ftv2vertline.png +0 -0
  63. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/functions.html +134 -0
  64. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/functions_vars.html +134 -0
  65. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/group___turbo_j_p_e_g.html +2775 -0
  66. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/index.html +90 -0
  67. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/jquery.js +8 -0
  68. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/modules.html +95 -0
  69. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/nav_f.png +0 -0
  70. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/nav_g.png +0 -0
  71. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/nav_h.png +0 -0
  72. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/open.png +0 -0
  73. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/all_63.html +26 -0
  74. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/all_63.js +4 -0
  75. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/all_64.html +26 -0
  76. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/all_64.js +5 -0
  77. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/all_68.html +26 -0
  78. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/all_68.js +4 -0
  79. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/all_6e.html +26 -0
  80. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/all_6e.js +4 -0
  81. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/all_6f.html +26 -0
  82. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/all_6f.js +5 -0
  83. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/all_72.html +26 -0
  84. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/all_72.js +4 -0
  85. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/all_74.html +26 -0
  86. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/all_74.js +102 -0
  87. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/all_77.html +26 -0
  88. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/all_77.js +4 -0
  89. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/all_78.html +26 -0
  90. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/all_78.js +4 -0
  91. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/all_79.html +26 -0
  92. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/all_79.js +4 -0
  93. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/classes_74.html +26 -0
  94. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/classes_74.js +6 -0
  95. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/close.png +0 -0
  96. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/enums_74.html +26 -0
  97. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/enums_74.js +8 -0
  98. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/enumvalues_74.html +26 -0
  99. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/enumvalues_74.js +37 -0
  100. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/functions_74.html +26 -0
  101. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/functions_74.js +31 -0
  102. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/groups_74.html +26 -0
  103. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/groups_74.js +4 -0
  104. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/mag_sel.png +0 -0
  105. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/nomatches.html +12 -0
  106. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/search.css +271 -0
  107. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/search.js +809 -0
  108. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/search_l.png +0 -0
  109. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/search_m.png +0 -0
  110. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/search_r.png +0 -0
  111. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/typedefs_74.html +26 -0
  112. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/typedefs_74.js +5 -0
  113. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/variables_63.html +26 -0
  114. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/variables_63.js +4 -0
  115. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/variables_64.html +26 -0
  116. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/variables_64.js +5 -0
  117. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/variables_68.html +26 -0
  118. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/variables_68.js +4 -0
  119. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/variables_6e.html +26 -0
  120. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/variables_6e.js +4 -0
  121. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/variables_6f.html +26 -0
  122. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/variables_6f.js +5 -0
  123. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/variables_72.html +26 -0
  124. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/variables_72.js +4 -0
  125. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/variables_74.html +26 -0
  126. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/variables_74.js +10 -0
  127. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/variables_77.html +26 -0
  128. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/variables_77.js +4 -0
  129. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/variables_78.html +26 -0
  130. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/variables_78.js +4 -0
  131. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/variables_79.html +26 -0
  132. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/variables_79.js +4 -0
  133. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/structtjregion.html +186 -0
  134. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/structtjscalingfactor.html +148 -0
  135. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/structtjtransform.html +212 -0
  136. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/sync_off.png +0 -0
  137. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/sync_on.png +0 -0
  138. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/tab_a.png +0 -0
  139. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/tab_b.png +0 -0
  140. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/tab_h.png +0 -0
  141. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/tab_s.png +0 -0
  142. data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/tabs.css +60 -0
  143. data/epeg/vendor/libjpeg-turbo-2.0.4/doxygen-extra.css +3 -0
  144. data/epeg/vendor/libjpeg-turbo-2.0.4/doxygen.config +16 -0
  145. data/epeg/vendor/libjpeg-turbo-2.0.4/example.txt +464 -0
  146. data/epeg/vendor/libjpeg-turbo-2.0.4/jaricom.c +157 -0
  147. data/epeg/vendor/libjpeg-turbo-2.0.4/java/CMakeLists.txt +88 -0
  148. data/epeg/vendor/libjpeg-turbo-2.0.4/java/MANIFEST.MF +2 -0
  149. data/epeg/vendor/libjpeg-turbo-2.0.4/java/README +52 -0
  150. data/epeg/vendor/libjpeg-turbo-2.0.4/java/TJBench.java +1021 -0
  151. data/epeg/vendor/libjpeg-turbo-2.0.4/java/TJExample.java +405 -0
  152. data/epeg/vendor/libjpeg-turbo-2.0.4/java/TJUnitTest.java +960 -0
  153. data/epeg/vendor/libjpeg-turbo-2.0.4/java/doc/allclasses-frame.html +24 -0
  154. data/epeg/vendor/libjpeg-turbo-2.0.4/java/doc/allclasses-noframe.html +24 -0
  155. data/epeg/vendor/libjpeg-turbo-2.0.4/java/doc/constant-values.html +532 -0
  156. data/epeg/vendor/libjpeg-turbo-2.0.4/java/doc/deprecated-list.html +252 -0
  157. data/epeg/vendor/libjpeg-turbo-2.0.4/java/doc/help-doc.html +210 -0
  158. data/epeg/vendor/libjpeg-turbo-2.0.4/java/doc/index-all.html +1029 -0
  159. data/epeg/vendor/libjpeg-turbo-2.0.4/java/doc/index.html +71 -0
  160. data/epeg/vendor/libjpeg-turbo-2.0.4/java/doc/org/libjpegturbo/turbojpeg/TJ.html +1356 -0
  161. data/epeg/vendor/libjpeg-turbo-2.0.4/java/doc/org/libjpegturbo/turbojpeg/TJCompressor.html +926 -0
  162. data/epeg/vendor/libjpeg-turbo-2.0.4/java/doc/org/libjpegturbo/turbojpeg/TJCustomFilter.html +241 -0
  163. data/epeg/vendor/libjpeg-turbo-2.0.4/java/doc/org/libjpegturbo/turbojpeg/TJDecompressor.html +1255 -0
  164. data/epeg/vendor/libjpeg-turbo-2.0.4/java/doc/org/libjpegturbo/turbojpeg/TJException.html +340 -0
  165. data/epeg/vendor/libjpeg-turbo-2.0.4/java/doc/org/libjpegturbo/turbojpeg/TJScalingFactor.html +343 -0
  166. data/epeg/vendor/libjpeg-turbo-2.0.4/java/doc/org/libjpegturbo/turbojpeg/TJTransform.html +751 -0
  167. data/epeg/vendor/libjpeg-turbo-2.0.4/java/doc/org/libjpegturbo/turbojpeg/TJTransformer.html +421 -0
  168. data/epeg/vendor/libjpeg-turbo-2.0.4/java/doc/org/libjpegturbo/turbojpeg/YUVImage.html +765 -0
  169. data/epeg/vendor/libjpeg-turbo-2.0.4/java/doc/org/libjpegturbo/turbojpeg/package-frame.html +31 -0
  170. data/epeg/vendor/libjpeg-turbo-2.0.4/java/doc/org/libjpegturbo/turbojpeg/package-summary.html +202 -0
  171. data/epeg/vendor/libjpeg-turbo-2.0.4/java/doc/org/libjpegturbo/turbojpeg/package-tree.html +160 -0
  172. data/epeg/vendor/libjpeg-turbo-2.0.4/java/doc/overview-tree.html +164 -0
  173. data/epeg/vendor/libjpeg-turbo-2.0.4/java/doc/package-list +1 -0
  174. data/epeg/vendor/libjpeg-turbo-2.0.4/java/doc/resources/background.gif +0 -0
  175. data/epeg/vendor/libjpeg-turbo-2.0.4/java/doc/resources/tab.gif +0 -0
  176. data/epeg/vendor/libjpeg-turbo-2.0.4/java/doc/resources/titlebar.gif +0 -0
  177. data/epeg/vendor/libjpeg-turbo-2.0.4/java/doc/resources/titlebar_end.gif +0 -0
  178. data/epeg/vendor/libjpeg-turbo-2.0.4/java/doc/script.js +30 -0
  179. data/epeg/vendor/libjpeg-turbo-2.0.4/java/doc/serialized-form.html +176 -0
  180. data/epeg/vendor/libjpeg-turbo-2.0.4/java/doc/stylesheet.css +474 -0
  181. data/epeg/vendor/libjpeg-turbo-2.0.4/java/org/libjpegturbo/turbojpeg/TJ.java +584 -0
  182. data/epeg/vendor/libjpeg-turbo-2.0.4/java/org/libjpegturbo/turbojpeg/TJCompressor.java +677 -0
  183. data/epeg/vendor/libjpeg-turbo-2.0.4/java/org/libjpegturbo/turbojpeg/TJCustomFilter.java +76 -0
  184. data/epeg/vendor/libjpeg-turbo-2.0.4/java/org/libjpegturbo/turbojpeg/TJDecompressor.java +931 -0
  185. data/epeg/vendor/libjpeg-turbo-2.0.4/java/org/libjpegturbo/turbojpeg/TJException.java +78 -0
  186. data/epeg/vendor/libjpeg-turbo-2.0.4/java/org/libjpegturbo/turbojpeg/TJLoader-unix.java.in +59 -0
  187. data/epeg/vendor/libjpeg-turbo-2.0.4/java/org/libjpegturbo/turbojpeg/TJLoader-win.java.in +35 -0
  188. data/epeg/vendor/libjpeg-turbo-2.0.4/java/org/libjpegturbo/turbojpeg/TJScalingFactor.java +115 -0
  189. data/epeg/vendor/libjpeg-turbo-2.0.4/java/org/libjpegturbo/turbojpeg/TJTransform.java +227 -0
  190. data/epeg/vendor/libjpeg-turbo-2.0.4/java/org/libjpegturbo/turbojpeg/TJTransformer.java +163 -0
  191. data/epeg/vendor/libjpeg-turbo-2.0.4/java/org/libjpegturbo/turbojpeg/YUVImage.java +445 -0
  192. data/epeg/vendor/libjpeg-turbo-2.0.4/java/org_libjpegturbo_turbojpeg_TJ.h +129 -0
  193. data/epeg/vendor/libjpeg-turbo-2.0.4/java/org_libjpegturbo_turbojpeg_TJCompressor.h +101 -0
  194. data/epeg/vendor/libjpeg-turbo-2.0.4/java/org_libjpegturbo_turbojpeg_TJDecompressor.h +101 -0
  195. data/epeg/vendor/libjpeg-turbo-2.0.4/java/org_libjpegturbo_turbojpeg_TJTransformer.h +29 -0
  196. data/epeg/vendor/libjpeg-turbo-2.0.4/jcapimin.c +295 -0
  197. data/epeg/vendor/libjpeg-turbo-2.0.4/jcapistd.c +162 -0
  198. data/epeg/vendor/libjpeg-turbo-2.0.4/jcarith.c +932 -0
  199. data/epeg/vendor/libjpeg-turbo-2.0.4/jccoefct.c +449 -0
  200. data/epeg/vendor/libjpeg-turbo-2.0.4/jccolext.c +144 -0
  201. data/epeg/vendor/libjpeg-turbo-2.0.4/jccolor.c +710 -0
  202. data/epeg/vendor/libjpeg-turbo-2.0.4/jcdctmgr.c +721 -0
  203. data/epeg/vendor/libjpeg-turbo-2.0.4/jchuff.c +1096 -0
  204. data/epeg/vendor/libjpeg-turbo-2.0.4/jchuff.h +42 -0
  205. data/epeg/vendor/libjpeg-turbo-2.0.4/jcicc.c +105 -0
  206. data/epeg/vendor/libjpeg-turbo-2.0.4/jcinit.c +77 -0
  207. data/epeg/vendor/libjpeg-turbo-2.0.4/jcmainct.c +162 -0
  208. data/epeg/vendor/libjpeg-turbo-2.0.4/jcmarker.c +664 -0
  209. data/epeg/vendor/libjpeg-turbo-2.0.4/jcmaster.c +640 -0
  210. data/epeg/vendor/libjpeg-turbo-2.0.4/jcomapi.c +109 -0
  211. data/epeg/vendor/libjpeg-turbo-2.0.4/jconfig.h.in +73 -0
  212. data/epeg/vendor/libjpeg-turbo-2.0.4/jconfig.txt +143 -0
  213. data/epeg/vendor/libjpeg-turbo-2.0.4/jconfigint.h.in +31 -0
  214. data/epeg/vendor/libjpeg-turbo-2.0.4/jcparam.c +541 -0
  215. data/epeg/vendor/libjpeg-turbo-2.0.4/jcphuff.c +1105 -0
  216. data/epeg/vendor/libjpeg-turbo-2.0.4/jcprepct.c +351 -0
  217. data/epeg/vendor/libjpeg-turbo-2.0.4/jcsample.c +539 -0
  218. data/epeg/vendor/libjpeg-turbo-2.0.4/jcstest.c +126 -0
  219. data/epeg/vendor/libjpeg-turbo-2.0.4/jctrans.c +400 -0
  220. data/epeg/vendor/libjpeg-turbo-2.0.4/jdapimin.c +407 -0
  221. data/epeg/vendor/libjpeg-turbo-2.0.4/jdapistd.c +639 -0
  222. data/epeg/vendor/libjpeg-turbo-2.0.4/jdarith.c +773 -0
  223. data/epeg/vendor/libjpeg-turbo-2.0.4/jdatadst-tj.c +203 -0
  224. data/epeg/vendor/libjpeg-turbo-2.0.4/jdatadst.c +293 -0
  225. data/epeg/vendor/libjpeg-turbo-2.0.4/jdatasrc-tj.c +194 -0
  226. data/epeg/vendor/libjpeg-turbo-2.0.4/jdatasrc.c +295 -0
  227. data/epeg/vendor/libjpeg-turbo-2.0.4/jdcoefct.c +692 -0
  228. data/epeg/vendor/libjpeg-turbo-2.0.4/jdcoefct.h +82 -0
  229. data/epeg/vendor/libjpeg-turbo-2.0.4/jdcol565.c +384 -0
  230. data/epeg/vendor/libjpeg-turbo-2.0.4/jdcolext.c +143 -0
  231. data/epeg/vendor/libjpeg-turbo-2.0.4/jdcolor.c +883 -0
  232. data/epeg/vendor/libjpeg-turbo-2.0.4/jdct.h +208 -0
  233. data/epeg/vendor/libjpeg-turbo-2.0.4/jddctmgr.c +352 -0
  234. data/epeg/vendor/libjpeg-turbo-2.0.4/jdhuff.c +831 -0
  235. data/epeg/vendor/libjpeg-turbo-2.0.4/jdhuff.h +238 -0
  236. data/epeg/vendor/libjpeg-turbo-2.0.4/jdicc.c +171 -0
  237. data/epeg/vendor/libjpeg-turbo-2.0.4/jdinput.c +408 -0
  238. data/epeg/vendor/libjpeg-turbo-2.0.4/jdmainct.c +460 -0
  239. data/epeg/vendor/libjpeg-turbo-2.0.4/jdmainct.h +71 -0
  240. data/epeg/vendor/libjpeg-turbo-2.0.4/jdmarker.c +1377 -0
  241. data/epeg/vendor/libjpeg-turbo-2.0.4/jdmaster.c +737 -0
  242. data/epeg/vendor/libjpeg-turbo-2.0.4/jdmaster.h +28 -0
  243. data/epeg/vendor/libjpeg-turbo-2.0.4/jdmerge.c +617 -0
  244. data/epeg/vendor/libjpeg-turbo-2.0.4/jdmrg565.c +354 -0
  245. data/epeg/vendor/libjpeg-turbo-2.0.4/jdmrgext.c +184 -0
  246. data/epeg/vendor/libjpeg-turbo-2.0.4/jdphuff.c +687 -0
  247. data/epeg/vendor/libjpeg-turbo-2.0.4/jdpostct.c +294 -0
  248. data/epeg/vendor/libjpeg-turbo-2.0.4/jdsample.c +518 -0
  249. data/epeg/vendor/libjpeg-turbo-2.0.4/jdsample.h +50 -0
  250. data/epeg/vendor/libjpeg-turbo-2.0.4/jdtrans.c +155 -0
  251. data/epeg/vendor/libjpeg-turbo-2.0.4/jerror.c +251 -0
  252. data/epeg/vendor/libjpeg-turbo-2.0.4/jerror.h +316 -0
  253. data/epeg/vendor/libjpeg-turbo-2.0.4/jfdctflt.c +169 -0
  254. data/epeg/vendor/libjpeg-turbo-2.0.4/jfdctfst.c +227 -0
  255. data/epeg/vendor/libjpeg-turbo-2.0.4/jfdctint.c +288 -0
  256. data/epeg/vendor/libjpeg-turbo-2.0.4/jidctflt.c +240 -0
  257. data/epeg/vendor/libjpeg-turbo-2.0.4/jidctfst.c +371 -0
  258. data/epeg/vendor/libjpeg-turbo-2.0.4/jidctint.c +2627 -0
  259. data/epeg/vendor/libjpeg-turbo-2.0.4/jidctred.c +409 -0
  260. data/epeg/vendor/libjpeg-turbo-2.0.4/jinclude.h +88 -0
  261. data/epeg/vendor/libjpeg-turbo-2.0.4/jmemmgr.c +1179 -0
  262. data/epeg/vendor/libjpeg-turbo-2.0.4/jmemnobs.c +115 -0
  263. data/epeg/vendor/libjpeg-turbo-2.0.4/jmemsys.h +178 -0
  264. data/epeg/vendor/libjpeg-turbo-2.0.4/jmorecfg.h +421 -0
  265. data/epeg/vendor/libjpeg-turbo-2.0.4/jpeg_nbits_table.h +4098 -0
  266. data/epeg/vendor/libjpeg-turbo-2.0.4/jpegcomp.h +31 -0
  267. data/epeg/vendor/libjpeg-turbo-2.0.4/jpegint.h +368 -0
  268. data/epeg/vendor/libjpeg-turbo-2.0.4/jpeglib.h +1132 -0
  269. data/epeg/vendor/libjpeg-turbo-2.0.4/jpegtran.1 +295 -0
  270. data/epeg/vendor/libjpeg-turbo-2.0.4/jpegtran.c +601 -0
  271. data/epeg/vendor/libjpeg-turbo-2.0.4/jquant1.c +859 -0
  272. data/epeg/vendor/libjpeg-turbo-2.0.4/jquant2.c +1285 -0
  273. data/epeg/vendor/libjpeg-turbo-2.0.4/jsimd.h +117 -0
  274. data/epeg/vendor/libjpeg-turbo-2.0.4/jsimd_none.c +418 -0
  275. data/epeg/vendor/libjpeg-turbo-2.0.4/jsimddct.h +70 -0
  276. data/epeg/vendor/libjpeg-turbo-2.0.4/jstdhuff.c +143 -0
  277. data/epeg/vendor/libjpeg-turbo-2.0.4/jutils.c +133 -0
  278. data/epeg/vendor/libjpeg-turbo-2.0.4/jversion.h +52 -0
  279. data/epeg/vendor/libjpeg-turbo-2.0.4/libjpeg.map.in +11 -0
  280. data/epeg/vendor/libjpeg-turbo-2.0.4/libjpeg.txt +3144 -0
  281. data/epeg/vendor/libjpeg-turbo-2.0.4/md5/CMakeLists.txt +1 -0
  282. data/epeg/vendor/libjpeg-turbo-2.0.4/md5/md5.c +275 -0
  283. data/epeg/vendor/libjpeg-turbo-2.0.4/md5/md5.h +57 -0
  284. data/epeg/vendor/libjpeg-turbo-2.0.4/md5/md5cmp.c +59 -0
  285. data/epeg/vendor/libjpeg-turbo-2.0.4/md5/md5hl.c +125 -0
  286. data/epeg/vendor/libjpeg-turbo-2.0.4/rdbmp.c +689 -0
  287. data/epeg/vendor/libjpeg-turbo-2.0.4/rdcolmap.c +254 -0
  288. data/epeg/vendor/libjpeg-turbo-2.0.4/rdgif.c +39 -0
  289. data/epeg/vendor/libjpeg-turbo-2.0.4/rdjpgcom.1 +63 -0
  290. data/epeg/vendor/libjpeg-turbo-2.0.4/rdjpgcom.c +510 -0
  291. data/epeg/vendor/libjpeg-turbo-2.0.4/rdppm.c +766 -0
  292. data/epeg/vendor/libjpeg-turbo-2.0.4/rdrle.c +389 -0
  293. data/epeg/vendor/libjpeg-turbo-2.0.4/rdswitch.c +424 -0
  294. data/epeg/vendor/libjpeg-turbo-2.0.4/rdtarga.c +509 -0
  295. data/epeg/vendor/libjpeg-turbo-2.0.4/release/Distribution.xml.in +24 -0
  296. data/epeg/vendor/libjpeg-turbo-2.0.4/release/License.rtf +20 -0
  297. data/epeg/vendor/libjpeg-turbo-2.0.4/release/ReadMe.txt +5 -0
  298. data/epeg/vendor/libjpeg-turbo-2.0.4/release/Welcome.rtf +17 -0
  299. data/epeg/vendor/libjpeg-turbo-2.0.4/release/deb-control.in +31 -0
  300. data/epeg/vendor/libjpeg-turbo-2.0.4/release/installer.nsi.in +191 -0
  301. data/epeg/vendor/libjpeg-turbo-2.0.4/release/libjpeg.pc.in +10 -0
  302. data/epeg/vendor/libjpeg-turbo-2.0.4/release/libturbojpeg.pc.in +10 -0
  303. data/epeg/vendor/libjpeg-turbo-2.0.4/release/makecygwinpkg.in +66 -0
  304. data/epeg/vendor/libjpeg-turbo-2.0.4/release/makedpkg.in +115 -0
  305. data/epeg/vendor/libjpeg-turbo-2.0.4/release/makemacpkg.in +284 -0
  306. data/epeg/vendor/libjpeg-turbo-2.0.4/release/makerpm.in +30 -0
  307. data/epeg/vendor/libjpeg-turbo-2.0.4/release/makesrpm.in +48 -0
  308. data/epeg/vendor/libjpeg-turbo-2.0.4/release/maketarball.in +51 -0
  309. data/epeg/vendor/libjpeg-turbo-2.0.4/release/rpm.spec.in +221 -0
  310. data/epeg/vendor/libjpeg-turbo-2.0.4/release/uninstall.in +113 -0
  311. data/epeg/vendor/libjpeg-turbo-2.0.4/sharedlib/CMakeLists.txt +99 -0
  312. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/CMakeLists.txt +385 -0
  313. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/arm/jsimd.c +721 -0
  314. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/arm/jsimd_neon.S +2878 -0
  315. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/arm64/jsimd.c +798 -0
  316. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/arm64/jsimd_neon.S +3433 -0
  317. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/gas-preprocessor.in +1 -0
  318. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jccolext-avx2.asm +578 -0
  319. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jccolext-mmx.asm +476 -0
  320. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jccolext-sse2.asm +503 -0
  321. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jccolor-avx2.asm +121 -0
  322. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jccolor-mmx.asm +121 -0
  323. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jccolor-sse2.asm +120 -0
  324. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jcgray-avx2.asm +113 -0
  325. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jcgray-mmx.asm +113 -0
  326. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jcgray-sse2.asm +112 -0
  327. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jcgryext-avx2.asm +457 -0
  328. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jcgryext-mmx.asm +355 -0
  329. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jcgryext-sse2.asm +382 -0
  330. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jchuff-sse2.asm +424 -0
  331. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jcphuff-sse2.asm +660 -0
  332. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jcsample-avx2.asm +388 -0
  333. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jcsample-mmx.asm +324 -0
  334. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jcsample-sse2.asm +351 -0
  335. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jdcolext-avx2.asm +515 -0
  336. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jdcolext-mmx.asm +404 -0
  337. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jdcolext-sse2.asm +458 -0
  338. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jdcolor-avx2.asm +118 -0
  339. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jdcolor-mmx.asm +117 -0
  340. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jdcolor-sse2.asm +117 -0
  341. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jdmerge-avx2.asm +136 -0
  342. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jdmerge-mmx.asm +123 -0
  343. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jdmerge-sse2.asm +135 -0
  344. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jdmrgext-avx2.asm +575 -0
  345. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jdmrgext-mmx.asm +460 -0
  346. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jdmrgext-sse2.asm +517 -0
  347. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jdsample-avx2.asm +760 -0
  348. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jdsample-mmx.asm +731 -0
  349. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jdsample-sse2.asm +724 -0
  350. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jfdctflt-3dn.asm +318 -0
  351. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jfdctflt-sse.asm +369 -0
  352. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jfdctfst-mmx.asm +395 -0
  353. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jfdctfst-sse2.asm +403 -0
  354. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jfdctint-avx2.asm +331 -0
  355. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jfdctint-mmx.asm +620 -0
  356. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jfdctint-sse2.asm +633 -0
  357. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jidctflt-3dn.asm +451 -0
  358. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jidctflt-sse.asm +571 -0
  359. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jidctflt-sse2.asm +497 -0
  360. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jidctfst-mmx.asm +499 -0
  361. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jidctfst-sse2.asm +501 -0
  362. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jidctint-avx2.asm +453 -0
  363. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jidctint-mmx.asm +851 -0
  364. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jidctint-sse2.asm +858 -0
  365. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jidctred-mmx.asm +704 -0
  366. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jidctred-sse2.asm +592 -0
  367. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jquant-3dn.asm +230 -0
  368. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jquant-mmx.asm +276 -0
  369. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jquant-sse.asm +208 -0
  370. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jquantf-sse2.asm +168 -0
  371. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jquanti-avx2.asm +188 -0
  372. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jquanti-sse2.asm +201 -0
  373. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jsimd.c +1253 -0
  374. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jsimdcpu.asm +135 -0
  375. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/jsimd.h +1083 -0
  376. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/loongson/jccolext-mmi.c +483 -0
  377. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/loongson/jccolor-mmi.c +148 -0
  378. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/loongson/jcsample-mmi.c +100 -0
  379. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/loongson/jcsample.h +28 -0
  380. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/loongson/jdcolext-mmi.c +424 -0
  381. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/loongson/jdcolor-mmi.c +139 -0
  382. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/loongson/jdsample-mmi.c +245 -0
  383. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/loongson/jfdctint-mmi.c +398 -0
  384. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/loongson/jidctint-mmi.c +571 -0
  385. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/loongson/jquanti-mmi.c +130 -0
  386. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/loongson/jsimd.c +610 -0
  387. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/loongson/jsimd_mmi.h +57 -0
  388. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/loongson/loongson-mmintrin.h +1324 -0
  389. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/mips/jsimd.c +1123 -0
  390. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/mips/jsimd_dspr2.S +4479 -0
  391. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/mips/jsimd_dspr2_asm.h +292 -0
  392. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/nasm/jcolsamp.inc +135 -0
  393. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/nasm/jdct.inc +31 -0
  394. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/nasm/jpeg_nbits_table.inc +4097 -0
  395. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/nasm/jsimdcfg.inc +93 -0
  396. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/nasm/jsimdcfg.inc.h +131 -0
  397. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/nasm/jsimdext.inc +479 -0
  398. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/powerpc/jccolext-altivec.c +269 -0
  399. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/powerpc/jccolor-altivec.c +116 -0
  400. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/powerpc/jcgray-altivec.c +111 -0
  401. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/powerpc/jcgryext-altivec.c +228 -0
  402. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/powerpc/jcsample-altivec.c +159 -0
  403. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/powerpc/jcsample.h +28 -0
  404. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/powerpc/jdcolext-altivec.c +276 -0
  405. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/powerpc/jdcolor-altivec.c +106 -0
  406. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/powerpc/jdmerge-altivec.c +130 -0
  407. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/powerpc/jdmrgext-altivec.c +329 -0
  408. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/powerpc/jdsample-altivec.c +400 -0
  409. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/powerpc/jfdctfst-altivec.c +154 -0
  410. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/powerpc/jfdctint-altivec.c +258 -0
  411. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/powerpc/jidctfst-altivec.c +255 -0
  412. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/powerpc/jidctint-altivec.c +357 -0
  413. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/powerpc/jquanti-altivec.c +250 -0
  414. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/powerpc/jsimd.c +872 -0
  415. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/powerpc/jsimd_altivec.h +98 -0
  416. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jccolext-avx2.asm +558 -0
  417. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jccolext-sse2.asm +483 -0
  418. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jccolor-avx2.asm +121 -0
  419. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jccolor-sse2.asm +120 -0
  420. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jcgray-avx2.asm +113 -0
  421. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jcgray-sse2.asm +112 -0
  422. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jcgryext-avx2.asm +437 -0
  423. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jcgryext-sse2.asm +362 -0
  424. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jchuff-sse2.asm +346 -0
  425. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jcphuff-sse2.asm +637 -0
  426. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jcsample-avx2.asm +366 -0
  427. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jcsample-sse2.asm +329 -0
  428. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jdcolext-avx2.asm +495 -0
  429. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jdcolext-sse2.asm +438 -0
  430. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jdcolor-avx2.asm +118 -0
  431. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jdcolor-sse2.asm +117 -0
  432. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jdmerge-avx2.asm +136 -0
  433. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jdmerge-sse2.asm +135 -0
  434. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jdmrgext-avx2.asm +593 -0
  435. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jdmrgext-sse2.asm +535 -0
  436. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jdsample-avx2.asm +695 -0
  437. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jdsample-sse2.asm +664 -0
  438. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jfdctflt-sse.asm +355 -0
  439. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jfdctfst-sse2.asm +389 -0
  440. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jfdctint-avx2.asm +320 -0
  441. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jfdctint-sse2.asm +619 -0
  442. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jidctflt-sse2.asm +481 -0
  443. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jidctfst-sse2.asm +490 -0
  444. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jidctint-avx2.asm +417 -0
  445. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jidctint-sse2.asm +846 -0
  446. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jidctred-sse2.asm +573 -0
  447. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jquantf-sse2.asm +154 -0
  448. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jquanti-avx2.asm +162 -0
  449. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jquanti-sse2.asm +187 -0
  450. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jsimd.c +1076 -0
  451. data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jsimdcpu.asm +86 -0
  452. data/epeg/vendor/libjpeg-turbo-2.0.4/structure.txt +904 -0
  453. data/epeg/vendor/libjpeg-turbo-2.0.4/testimages/nightshot_iso_100.bmp +0 -0
  454. data/epeg/vendor/libjpeg-turbo-2.0.4/testimages/nightshot_iso_100.txt +25 -0
  455. data/epeg/vendor/libjpeg-turbo-2.0.4/testimages/test.scan +5 -0
  456. data/epeg/vendor/libjpeg-turbo-2.0.4/testimages/test1.icc +0 -0
  457. data/epeg/vendor/libjpeg-turbo-2.0.4/testimages/test1.icc.txt +20 -0
  458. data/epeg/vendor/libjpeg-turbo-2.0.4/testimages/test2.icc +0 -0
  459. data/epeg/vendor/libjpeg-turbo-2.0.4/testimages/test2.icc.txt +20 -0
  460. data/epeg/vendor/libjpeg-turbo-2.0.4/testimages/testimgari.jpg +0 -0
  461. data/epeg/vendor/libjpeg-turbo-2.0.4/testimages/testimgint.jpg +0 -0
  462. data/epeg/vendor/libjpeg-turbo-2.0.4/testimages/testorig.jpg +0 -0
  463. data/epeg/vendor/libjpeg-turbo-2.0.4/testimages/testorig.ppm +4 -0
  464. data/epeg/vendor/libjpeg-turbo-2.0.4/testimages/testorig12.jpg +0 -0
  465. data/epeg/vendor/libjpeg-turbo-2.0.4/testimages/vgl_5674_0098.bmp +0 -0
  466. data/epeg/vendor/libjpeg-turbo-2.0.4/testimages/vgl_6434_0018a.bmp +0 -0
  467. data/epeg/vendor/libjpeg-turbo-2.0.4/testimages/vgl_6548_0026a.bmp +0 -0
  468. data/epeg/vendor/libjpeg-turbo-2.0.4/tjbench.c +1031 -0
  469. data/epeg/vendor/libjpeg-turbo-2.0.4/tjbenchtest.in +256 -0
  470. data/epeg/vendor/libjpeg-turbo-2.0.4/tjbenchtest.java.in +215 -0
  471. data/epeg/vendor/libjpeg-turbo-2.0.4/tjexample.c +396 -0
  472. data/epeg/vendor/libjpeg-turbo-2.0.4/tjexampletest.in +149 -0
  473. data/epeg/vendor/libjpeg-turbo-2.0.4/tjexampletest.java.in +151 -0
  474. data/epeg/vendor/libjpeg-turbo-2.0.4/tjunittest.c +931 -0
  475. data/epeg/vendor/libjpeg-turbo-2.0.4/tjutil.c +70 -0
  476. data/epeg/vendor/libjpeg-turbo-2.0.4/tjutil.h +47 -0
  477. data/epeg/vendor/libjpeg-turbo-2.0.4/transupp.c +1628 -0
  478. data/epeg/vendor/libjpeg-turbo-2.0.4/transupp.h +210 -0
  479. data/epeg/vendor/libjpeg-turbo-2.0.4/turbojpeg-jni.c +1246 -0
  480. data/epeg/vendor/libjpeg-turbo-2.0.4/turbojpeg-mapfile +65 -0
  481. data/epeg/vendor/libjpeg-turbo-2.0.4/turbojpeg-mapfile.jni +101 -0
  482. data/epeg/vendor/libjpeg-turbo-2.0.4/turbojpeg.c +2152 -0
  483. data/epeg/vendor/libjpeg-turbo-2.0.4/turbojpeg.h +1744 -0
  484. data/epeg/vendor/libjpeg-turbo-2.0.4/usage.txt +635 -0
  485. data/epeg/vendor/libjpeg-turbo-2.0.4/win/jconfig.h.in +34 -0
  486. data/epeg/vendor/libjpeg-turbo-2.0.4/win/jpeg62-memsrcdst.def +108 -0
  487. data/epeg/vendor/libjpeg-turbo-2.0.4/win/jpeg62.def +106 -0
  488. data/epeg/vendor/libjpeg-turbo-2.0.4/win/jpeg7-memsrcdst.def +110 -0
  489. data/epeg/vendor/libjpeg-turbo-2.0.4/win/jpeg7.def +108 -0
  490. data/epeg/vendor/libjpeg-turbo-2.0.4/win/jpeg8.def +111 -0
  491. data/epeg/vendor/libjpeg-turbo-2.0.4/wizard.txt +212 -0
  492. data/epeg/vendor/libjpeg-turbo-2.0.4/wrbmp.c +558 -0
  493. data/epeg/vendor/libjpeg-turbo-2.0.4/wrgif.c +413 -0
  494. data/epeg/vendor/libjpeg-turbo-2.0.4/wrjpgcom.1 +103 -0
  495. data/epeg/vendor/libjpeg-turbo-2.0.4/wrjpgcom.c +591 -0
  496. data/epeg/vendor/libjpeg-turbo-2.0.4/wrppm.c +365 -0
  497. data/epeg/vendor/libjpeg-turbo-2.0.4/wrrle.c +309 -0
  498. data/epeg/vendor/libjpeg-turbo-2.0.4/wrtarga.c +261 -0
  499. data/epeg.c +131 -0
  500. data/epeg.gemspec +18 -0
  501. data/extconf.rb +80 -0
  502. data/test.jpg +0 -0
  503. data/test.rb +42 -0
  504. metadata +546 -0
@@ -0,0 +1,93 @@
1
+ ;
2
+ ; Automatically generated include file from jsimdcfg.inc.h
3
+ ;
4
+ ;
5
+ ; -- jpeglib.h
6
+ ;
7
+ %define DCTSIZE 8
8
+ %define DCTSIZE2 64
9
+ ;
10
+ ; -- jmorecfg.h
11
+ ;
12
+ %define RGB_RED 0
13
+ %define RGB_GREEN 1
14
+ %define RGB_BLUE 2
15
+ %define RGB_PIXELSIZE 3
16
+ %define EXT_RGB_RED 0
17
+ %define EXT_RGB_GREEN 1
18
+ %define EXT_RGB_BLUE 2
19
+ %define EXT_RGB_PIXELSIZE 3
20
+ %define EXT_RGBX_RED 0
21
+ %define EXT_RGBX_GREEN 1
22
+ %define EXT_RGBX_BLUE 2
23
+ %define EXT_RGBX_PIXELSIZE 4
24
+ %define EXT_BGR_RED 2
25
+ %define EXT_BGR_GREEN 1
26
+ %define EXT_BGR_BLUE 0
27
+ %define EXT_BGR_PIXELSIZE 3
28
+ %define EXT_BGRX_RED 2
29
+ %define EXT_BGRX_GREEN 1
30
+ %define EXT_BGRX_BLUE 0
31
+ %define EXT_BGRX_PIXELSIZE 4
32
+ %define EXT_XBGR_RED 3
33
+ %define EXT_XBGR_GREEN 2
34
+ %define EXT_XBGR_BLUE 1
35
+ %define EXT_XBGR_PIXELSIZE 4
36
+ %define EXT_XRGB_RED 1
37
+ %define EXT_XRGB_GREEN 2
38
+ %define EXT_XRGB_BLUE 3
39
+ %define EXT_XRGB_PIXELSIZE 4
40
+ %define RGBX_FILLER_0XFF 1
41
+ ; Representation of a single sample (pixel element value).
42
+ ; On this SIMD implementation, this must be 'unsigned char'.
43
+ ;
44
+ %define JSAMPLE byte ; unsigned char
45
+ %define SIZEOF_JSAMPLE SIZEOF_BYTE ; sizeof(JSAMPLE)
46
+ %define CENTERJSAMPLE 128
47
+ ; Representation of a DCT frequency coefficient.
48
+ ; On this SIMD implementation, this must be 'short'.
49
+ ;
50
+ %define JCOEF word ; short
51
+ %define SIZEOF_JCOEF SIZEOF_WORD ; sizeof(JCOEF)
52
+ ; Datatype used for image dimensions.
53
+ ; On this SIMD implementation, this must be 'unsigned int'.
54
+ ;
55
+ %define JDIMENSION dword ; unsigned int
56
+ %define SIZEOF_JDIMENSION SIZEOF_DWORD ; sizeof(JDIMENSION)
57
+ %define JSAMPROW POINTER ; JSAMPLE * (jpeglib.h)
58
+ %define JSAMPARRAY POINTER ; JSAMPROW * (jpeglib.h)
59
+ %define JSAMPIMAGE POINTER ; JSAMPARRAY * (jpeglib.h)
60
+ %define JCOEFPTR POINTER ; JCOEF * (jpeglib.h)
61
+ %define SIZEOF_JSAMPROW SIZEOF_POINTER ; sizeof(JSAMPROW)
62
+ %define SIZEOF_JSAMPARRAY SIZEOF_POINTER ; sizeof(JSAMPARRAY)
63
+ %define SIZEOF_JSAMPIMAGE SIZEOF_POINTER ; sizeof(JSAMPIMAGE)
64
+ %define SIZEOF_JCOEFPTR SIZEOF_POINTER ; sizeof(JCOEFPTR)
65
+ ;
66
+ ; -- jdct.h
67
+ ;
68
+ ; A forward DCT routine is given a pointer to a work area of type DCTELEM[];
69
+ ; the DCT is to be performed in-place in that buffer.
70
+ ; To maximize parallelism, Type DCTELEM is changed to short (originally, int).
71
+ ;
72
+ %define DCTELEM word ; short
73
+ %define SIZEOF_DCTELEM SIZEOF_WORD ; sizeof(DCTELEM)
74
+ %define float FP32 ; float
75
+ %define SIZEOF_FAST_FLOAT SIZEOF_FP32 ; sizeof(float)
76
+ ; To maximize parallelism, Type short is changed to short.
77
+ ;
78
+ %define ISLOW_MULT_TYPE word ; must be short
79
+ %define SIZEOF_ISLOW_MULT_TYPE SIZEOF_WORD ; sizeof(ISLOW_MULT_TYPE)
80
+ %define IFAST_MULT_TYPE word ; must be short
81
+ %define SIZEOF_IFAST_MULT_TYPE SIZEOF_WORD ; sizeof(IFAST_MULT_TYPE)
82
+ %define IFAST_SCALE_BITS 2 ; fractional bits in scale factors
83
+ %define FLOAT_MULT_TYPE FP32 ; must be float
84
+ %define SIZEOF_FLOAT_MULT_TYPE SIZEOF_FP32 ; sizeof(FLOAT_MULT_TYPE)
85
+ ;
86
+ ; -- jsimd.h
87
+ ;
88
+ %define JSIMD_NONE 0x00
89
+ %define JSIMD_MMX 0x01
90
+ %define JSIMD_3DNOW 0x02
91
+ %define JSIMD_SSE 0x04
92
+ %define JSIMD_SSE2 0x08
93
+ %define JSIMD_AVX2 0x80
@@ -0,0 +1,131 @@
1
+ // This file generates the include file for the assembly
2
+ // implementations by abusing the C preprocessor.
3
+ //
4
+ // Note: Some things are manually defined as they need to
5
+ // be mapped to NASM types.
6
+
7
+ ;
8
+ ; Automatically generated include file from jsimdcfg.inc.h
9
+ ;
10
+
11
+ #define JPEG_INTERNALS
12
+
13
+ #include "../jpeglib.h"
14
+ #include "../jconfig.h"
15
+ #include "../jmorecfg.h"
16
+ #include "jsimd.h"
17
+
18
+ ;
19
+ ; -- jpeglib.h
20
+ ;
21
+
22
+ %define _cpp_protection_DCTSIZE DCTSIZE
23
+ %define _cpp_protection_DCTSIZE2 DCTSIZE2
24
+
25
+ ;
26
+ ; -- jmorecfg.h
27
+ ;
28
+
29
+ %define _cpp_protection_RGB_RED RGB_RED
30
+ %define _cpp_protection_RGB_GREEN RGB_GREEN
31
+ %define _cpp_protection_RGB_BLUE RGB_BLUE
32
+ %define _cpp_protection_RGB_PIXELSIZE RGB_PIXELSIZE
33
+
34
+ %define _cpp_protection_EXT_RGB_RED EXT_RGB_RED
35
+ %define _cpp_protection_EXT_RGB_GREEN EXT_RGB_GREEN
36
+ %define _cpp_protection_EXT_RGB_BLUE EXT_RGB_BLUE
37
+ %define _cpp_protection_EXT_RGB_PIXELSIZE EXT_RGB_PIXELSIZE
38
+
39
+ %define _cpp_protection_EXT_RGBX_RED EXT_RGBX_RED
40
+ %define _cpp_protection_EXT_RGBX_GREEN EXT_RGBX_GREEN
41
+ %define _cpp_protection_EXT_RGBX_BLUE EXT_RGBX_BLUE
42
+ %define _cpp_protection_EXT_RGBX_PIXELSIZE EXT_RGBX_PIXELSIZE
43
+
44
+ %define _cpp_protection_EXT_BGR_RED EXT_BGR_RED
45
+ %define _cpp_protection_EXT_BGR_GREEN EXT_BGR_GREEN
46
+ %define _cpp_protection_EXT_BGR_BLUE EXT_BGR_BLUE
47
+ %define _cpp_protection_EXT_BGR_PIXELSIZE EXT_BGR_PIXELSIZE
48
+
49
+ %define _cpp_protection_EXT_BGRX_RED EXT_BGRX_RED
50
+ %define _cpp_protection_EXT_BGRX_GREEN EXT_BGRX_GREEN
51
+ %define _cpp_protection_EXT_BGRX_BLUE EXT_BGRX_BLUE
52
+ %define _cpp_protection_EXT_BGRX_PIXELSIZE EXT_BGRX_PIXELSIZE
53
+
54
+ %define _cpp_protection_EXT_XBGR_RED EXT_XBGR_RED
55
+ %define _cpp_protection_EXT_XBGR_GREEN EXT_XBGR_GREEN
56
+ %define _cpp_protection_EXT_XBGR_BLUE EXT_XBGR_BLUE
57
+ %define _cpp_protection_EXT_XBGR_PIXELSIZE EXT_XBGR_PIXELSIZE
58
+
59
+ %define _cpp_protection_EXT_XRGB_RED EXT_XRGB_RED
60
+ %define _cpp_protection_EXT_XRGB_GREEN EXT_XRGB_GREEN
61
+ %define _cpp_protection_EXT_XRGB_BLUE EXT_XRGB_BLUE
62
+ %define _cpp_protection_EXT_XRGB_PIXELSIZE EXT_XRGB_PIXELSIZE
63
+
64
+ %define RGBX_FILLER_0XFF 1
65
+
66
+ ; Representation of a single sample (pixel element value).
67
+ ; On this SIMD implementation, this must be 'unsigned char'.
68
+ ;
69
+
70
+ %define JSAMPLE byte ; unsigned char
71
+ %define SIZEOF_JSAMPLE SIZEOF_BYTE ; sizeof(JSAMPLE)
72
+
73
+ %define _cpp_protection_CENTERJSAMPLE CENTERJSAMPLE
74
+
75
+ ; Representation of a DCT frequency coefficient.
76
+ ; On this SIMD implementation, this must be 'short'.
77
+ ;
78
+ %define JCOEF word ; short
79
+ %define SIZEOF_JCOEF SIZEOF_WORD ; sizeof(JCOEF)
80
+
81
+ ; Datatype used for image dimensions.
82
+ ; On this SIMD implementation, this must be 'unsigned int'.
83
+ ;
84
+ %define JDIMENSION dword ; unsigned int
85
+ %define SIZEOF_JDIMENSION SIZEOF_DWORD ; sizeof(JDIMENSION)
86
+
87
+ %define JSAMPROW POINTER ; JSAMPLE * (jpeglib.h)
88
+ %define JSAMPARRAY POINTER ; JSAMPROW * (jpeglib.h)
89
+ %define JSAMPIMAGE POINTER ; JSAMPARRAY * (jpeglib.h)
90
+ %define JCOEFPTR POINTER ; JCOEF * (jpeglib.h)
91
+ %define SIZEOF_JSAMPROW SIZEOF_POINTER ; sizeof(JSAMPROW)
92
+ %define SIZEOF_JSAMPARRAY SIZEOF_POINTER ; sizeof(JSAMPARRAY)
93
+ %define SIZEOF_JSAMPIMAGE SIZEOF_POINTER ; sizeof(JSAMPIMAGE)
94
+ %define SIZEOF_JCOEFPTR SIZEOF_POINTER ; sizeof(JCOEFPTR)
95
+
96
+ ;
97
+ ; -- jdct.h
98
+ ;
99
+
100
+ ; A forward DCT routine is given a pointer to a work area of type DCTELEM[];
101
+ ; the DCT is to be performed in-place in that buffer.
102
+ ; To maximize parallelism, Type DCTELEM is changed to short (originally, int).
103
+ ;
104
+ %define DCTELEM word ; short
105
+ %define SIZEOF_DCTELEM SIZEOF_WORD ; sizeof(DCTELEM)
106
+
107
+ %define FAST_FLOAT FP32 ; float
108
+ %define SIZEOF_FAST_FLOAT SIZEOF_FP32 ; sizeof(FAST_FLOAT)
109
+
110
+ ; To maximize parallelism, Type MULTIPLIER is changed to short.
111
+ ;
112
+ %define ISLOW_MULT_TYPE word ; must be short
113
+ %define SIZEOF_ISLOW_MULT_TYPE SIZEOF_WORD ; sizeof(ISLOW_MULT_TYPE)
114
+
115
+ %define IFAST_MULT_TYPE word ; must be short
116
+ %define SIZEOF_IFAST_MULT_TYPE SIZEOF_WORD ; sizeof(IFAST_MULT_TYPE)
117
+ %define IFAST_SCALE_BITS 2 ; fractional bits in scale factors
118
+
119
+ %define FLOAT_MULT_TYPE FP32 ; must be float
120
+ %define SIZEOF_FLOAT_MULT_TYPE SIZEOF_FP32 ; sizeof(FLOAT_MULT_TYPE)
121
+
122
+ ;
123
+ ; -- jsimd.h
124
+ ;
125
+
126
+ %define _cpp_protection_JSIMD_NONE JSIMD_NONE
127
+ %define _cpp_protection_JSIMD_MMX JSIMD_MMX
128
+ %define _cpp_protection_JSIMD_3DNOW JSIMD_3DNOW
129
+ %define _cpp_protection_JSIMD_SSE JSIMD_SSE
130
+ %define _cpp_protection_JSIMD_SSE2 JSIMD_SSE2
131
+ %define _cpp_protection_JSIMD_AVX2 JSIMD_AVX2
@@ -0,0 +1,479 @@
1
+ ;
2
+ ; jsimdext.inc - common declarations
3
+ ;
4
+ ; Copyright 2009 Pierre Ossman <ossman@cendio.se> for Cendio AB
5
+ ; Copyright (C) 2010, 2016, 2019, D. R. Commander.
6
+ ; Copyright (C) 2018, Matthieu Darbois.
7
+ ;
8
+ ; Based on the x86 SIMD extension for IJG JPEG library - version 1.02
9
+ ;
10
+ ; Copyright (C) 1999-2006, MIYASAKA Masaru.
11
+ ;
12
+ ; This software is provided 'as-is', without any express or implied
13
+ ; warranty. In no event will the authors be held liable for any damages
14
+ ; arising from the use of this software.
15
+ ;
16
+ ; Permission is granted to anyone to use this software for any purpose,
17
+ ; including commercial applications, and to alter it and redistribute it
18
+ ; freely, subject to the following restrictions:
19
+ ;
20
+ ; 1. The origin of this software must not be misrepresented; you must not
21
+ ; claim that you wrote the original software. If you use this software
22
+ ; in a product, an acknowledgment in the product documentation would be
23
+ ; appreciated but is not required.
24
+ ; 2. Altered source versions must be plainly marked as such, and must not be
25
+ ; misrepresented as being the original software.
26
+ ; 3. This notice may not be removed or altered from any source distribution.
27
+
28
+ ; ==========================================================================
29
+ ; System-dependent configurations
30
+
31
+ %ifdef WIN32 ; ----(nasm -fwin32 -DWIN32 ...)--------
32
+ ; * Microsoft Visual C++
33
+ ; * MinGW (Minimalist GNU for Windows)
34
+ ; * CygWin
35
+ ; * LCC-Win32
36
+
37
+ ; -- segment definition --
38
+ ;
39
+ %ifdef __YASM_VER__
40
+ %define SEG_TEXT .text align=32
41
+ %define SEG_CONST .rdata align=32
42
+ %else
43
+ %define SEG_TEXT .text align=32 public use32 class=CODE
44
+ %define SEG_CONST .rdata align=32 public use32 class=CONST
45
+ %endif
46
+
47
+ %elifdef WIN64 ; ----(nasm -fwin64 -DWIN64 ...)--------
48
+ ; * Microsoft Visual C++
49
+
50
+ ; -- segment definition --
51
+ ;
52
+ %ifdef __YASM_VER__
53
+ %define SEG_TEXT .text align=32
54
+ %define SEG_CONST .rdata align=32
55
+ %else
56
+ %define SEG_TEXT .text align=32 public use64 class=CODE
57
+ %define SEG_CONST .rdata align=32 public use64 class=CONST
58
+ %endif
59
+ %define EXTN(name) name ; foo() -> foo
60
+
61
+ %elifdef OBJ32 ; ----(nasm -fobj -DOBJ32 ...)----------
62
+ ; * Borland C++ (Win32)
63
+
64
+ ; -- segment definition --
65
+ ;
66
+ %define SEG_TEXT _text align=32 public use32 class=CODE
67
+ %define SEG_CONST _data align=32 public use32 class=DATA
68
+
69
+ %elifdef ELF ; ----(nasm -felf[64] -DELF ...)------------
70
+ ; * Linux
71
+ ; * *BSD family Unix using elf format
72
+ ; * Unix System V, including Solaris x86, UnixWare and SCO Unix
73
+
74
+ ; mark stack as non-executable
75
+ section .note.GNU-stack noalloc noexec nowrite progbits
76
+
77
+ ; -- segment definition --
78
+ ;
79
+ %ifdef __x86_64__
80
+ %define SEG_TEXT .text progbits align=32
81
+ %define SEG_CONST .rodata progbits align=32
82
+ %else
83
+ %define SEG_TEXT .text progbits alloc exec nowrite align=32
84
+ %define SEG_CONST .rodata progbits alloc noexec nowrite align=32
85
+ %endif
86
+
87
+ ; To make the code position-independent, append -DPIC to the commandline
88
+ ;
89
+ %define GOT_SYMBOL _GLOBAL_OFFSET_TABLE_ ; ELF supports PIC
90
+ %define EXTN(name) name ; foo() -> foo
91
+
92
+ %elifdef AOUT ; ----(nasm -faoutb/aout -DAOUT ...)----
93
+ ; * Older Linux using a.out format (nasm -f aout -DAOUT ...)
94
+ ; * *BSD family Unix using a.out format (nasm -f aoutb -DAOUT ...)
95
+
96
+ ; -- segment definition --
97
+ ;
98
+ %define SEG_TEXT .text
99
+ %define SEG_CONST .data
100
+
101
+ ; To make the code position-independent, append -DPIC to the commandline
102
+ ;
103
+ %define GOT_SYMBOL __GLOBAL_OFFSET_TABLE_ ; BSD-style a.out supports PIC
104
+
105
+ %elifdef MACHO ; ----(nasm -fmacho -DMACHO ...)--------
106
+ ; * NeXTstep/OpenStep/Rhapsody/Darwin/MacOS X (Mach-O format)
107
+
108
+ ; -- segment definition --
109
+ ;
110
+ %define SEG_TEXT .text ;align=32 ; nasm doesn't accept align=32. why?
111
+ %define SEG_CONST .rodata align=32
112
+
113
+ ; The generation of position-independent code (PIC) is the default on Darwin.
114
+ ;
115
+ %define PIC
116
+ %define GOT_SYMBOL _MACHO_PIC_ ; Mach-O style code-relative addressing
117
+
118
+ %else ; ----(Other case)----------------------
119
+
120
+ ; -- segment definition --
121
+ ;
122
+ %define SEG_TEXT .text
123
+ %define SEG_CONST .data
124
+
125
+ %endif ; ----------------------------------------------
126
+
127
+ ; ==========================================================================
128
+
129
+ ; --------------------------------------------------------------------------
130
+ ; Common types
131
+ ;
132
+ %ifdef __x86_64__
133
+ %define POINTER qword ; general pointer type
134
+ %define SIZEOF_POINTER SIZEOF_QWORD ; sizeof(POINTER)
135
+ %define POINTER_BIT QWORD_BIT ; sizeof(POINTER)*BYTE_BIT
136
+ %else
137
+ %define POINTER dword ; general pointer type
138
+ %define SIZEOF_POINTER SIZEOF_DWORD ; sizeof(POINTER)
139
+ %define POINTER_BIT DWORD_BIT ; sizeof(POINTER)*BYTE_BIT
140
+ %endif
141
+
142
+ %define INT dword ; signed integer type
143
+ %define SIZEOF_INT SIZEOF_DWORD ; sizeof(INT)
144
+ %define INT_BIT DWORD_BIT ; sizeof(INT)*BYTE_BIT
145
+
146
+ %define FP32 dword ; IEEE754 single
147
+ %define SIZEOF_FP32 SIZEOF_DWORD ; sizeof(FP32)
148
+ %define FP32_BIT DWORD_BIT ; sizeof(FP32)*BYTE_BIT
149
+
150
+ %define MMWORD qword ; int64 (MMX register)
151
+ %define SIZEOF_MMWORD SIZEOF_QWORD ; sizeof(MMWORD)
152
+ %define MMWORD_BIT QWORD_BIT ; sizeof(MMWORD)*BYTE_BIT
153
+
154
+ ; NASM is buggy and doesn't properly handle operand sizes for SSE
155
+ ; instructions, so for now we have to define XMMWORD as blank.
156
+ %define XMMWORD ; int128 (SSE register)
157
+ %define SIZEOF_XMMWORD SIZEOF_OWORD ; sizeof(XMMWORD)
158
+ %define XMMWORD_BIT OWORD_BIT ; sizeof(XMMWORD)*BYTE_BIT
159
+
160
+ %define YMMWORD ; int256 (AVX register)
161
+ %define SIZEOF_YMMWORD SIZEOF_YWORD ; sizeof(YMMWORD)
162
+ %define YMMWORD_BIT YWORD_BIT ; sizeof(YMMWORD)*BYTE_BIT
163
+
164
+ ; Similar hacks for when we load a dword or MMWORD into an xmm# register
165
+ %define XMM_DWORD
166
+ %define XMM_MMWORD
167
+
168
+ %define SIZEOF_BYTE 1 ; sizeof(byte)
169
+ %define SIZEOF_WORD 2 ; sizeof(word)
170
+ %define SIZEOF_DWORD 4 ; sizeof(dword)
171
+ %define SIZEOF_QWORD 8 ; sizeof(qword)
172
+ %define SIZEOF_OWORD 16 ; sizeof(oword)
173
+ %define SIZEOF_YWORD 32 ; sizeof(yword)
174
+
175
+ %define BYTE_BIT 8 ; CHAR_BIT in C
176
+ %define WORD_BIT 16 ; sizeof(word)*BYTE_BIT
177
+ %define DWORD_BIT 32 ; sizeof(dword)*BYTE_BIT
178
+ %define QWORD_BIT 64 ; sizeof(qword)*BYTE_BIT
179
+ %define OWORD_BIT 128 ; sizeof(oword)*BYTE_BIT
180
+ %define YWORD_BIT 256 ; sizeof(yword)*BYTE_BIT
181
+
182
+ ; --------------------------------------------------------------------------
183
+ ; External Symbol Name
184
+ ;
185
+ %ifndef EXTN
186
+ %define EXTN(name) _ %+ name ; foo() -> _foo
187
+ %endif
188
+
189
+ ; --------------------------------------------------------------------------
190
+ ; Hidden symbols
191
+ ;
192
+ %ifdef ELF ; ----(nasm -felf[64] -DELF ...)--------
193
+ %define GLOBAL_FUNCTION(name) global EXTN(name):function hidden
194
+ %define GLOBAL_DATA(name) global EXTN(name):data hidden
195
+ %elifdef MACHO ; ----(nasm -fmacho -DMACHO ...)--------
196
+ %ifdef __YASM_VER__
197
+ %define GLOBAL_FUNCTION(name) global EXTN(name):private_extern
198
+ %define GLOBAL_DATA(name) global EXTN(name):private_extern
199
+ %else
200
+ %if __NASM_VERSION_ID__ >= 0x020E0000
201
+ %define GLOBAL_FUNCTION(name) global EXTN(name):private_extern
202
+ %define GLOBAL_DATA(name) global EXTN(name):private_extern
203
+ %endif
204
+ %endif
205
+ %endif
206
+
207
+ %ifndef GLOBAL_FUNCTION
208
+ %define GLOBAL_FUNCTION(name) global EXTN(name)
209
+ %endif
210
+ %ifndef GLOBAL_DATA
211
+ %define GLOBAL_DATA(name) global EXTN(name)
212
+ %endif
213
+
214
+ ; --------------------------------------------------------------------------
215
+ ; Macros for position-independent code (PIC) support
216
+ ;
217
+ %ifndef GOT_SYMBOL
218
+ %undef PIC
219
+ %endif
220
+
221
+ %ifdef PIC ; -------------------------------------------
222
+
223
+ %ifidn GOT_SYMBOL, _MACHO_PIC_ ; --------------------
224
+
225
+ ; At present, nasm doesn't seem to support PIC generation for Mach-O.
226
+ ; The PIC support code below is a little tricky.
227
+
228
+ SECTION SEG_CONST
229
+ const_base:
230
+
231
+ %define GOTOFF(got, sym) (got) + (sym) - const_base
232
+
233
+ %imacro get_GOT 1
234
+ ; NOTE: this macro destroys ecx resister.
235
+ call %%geteip
236
+ add ecx, byte (%%ref - $)
237
+ jmp short %%adjust
238
+ %%geteip:
239
+ mov ecx, POINTER [esp]
240
+ ret
241
+ %%adjust:
242
+ push ebp
243
+ xor ebp, ebp ; ebp = 0
244
+ %ifidni %1, ebx ; (%1 == ebx)
245
+ ; db 0x8D,0x9C + jmp near const_base =
246
+ ; lea ebx, [ecx+ebp*8+(const_base-%%ref)] ; 8D,9C,E9,(offset32)
247
+ db 0x8D, 0x9C ; 8D,9C
248
+ jmp near const_base ; E9,(const_base-%%ref)
249
+ %%ref:
250
+ %else ; (%1 != ebx)
251
+ ; db 0x8D,0x8C + jmp near const_base =
252
+ ; lea ecx, [ecx+ebp*8+(const_base-%%ref)] ; 8D,8C,E9,(offset32)
253
+ db 0x8D, 0x8C ; 8D,8C
254
+ jmp near const_base ; E9,(const_base-%%ref)
255
+ %%ref:
256
+ mov %1, ecx
257
+ %endif ; (%1 == ebx)
258
+ pop ebp
259
+ %endmacro
260
+
261
+ %else ; GOT_SYMBOL != _MACHO_PIC_ ----------------
262
+
263
+ %define GOTOFF(got, sym) (got) + (sym) wrt ..gotoff
264
+
265
+ %imacro get_GOT 1
266
+ extern GOT_SYMBOL
267
+ call %%geteip
268
+ add %1, GOT_SYMBOL + $$ - $ wrt ..gotpc
269
+ jmp short %%done
270
+ %%geteip:
271
+ mov %1, POINTER [esp]
272
+ ret
273
+ %%done:
274
+ %endmacro
275
+
276
+ %endif ; GOT_SYMBOL == _MACHO_PIC_ ----------------
277
+
278
+ %imacro pushpic 1.nolist
279
+ push %1
280
+ %endmacro
281
+ %imacro poppic 1.nolist
282
+ pop %1
283
+ %endmacro
284
+ %imacro movpic 2.nolist
285
+ mov %1, %2
286
+ %endmacro
287
+
288
+ %else ; !PIC -----------------------------------------
289
+
290
+ %define GOTOFF(got, sym) (sym)
291
+
292
+ %imacro get_GOT 1.nolist
293
+ %endmacro
294
+ %imacro pushpic 1.nolist
295
+ %endmacro
296
+ %imacro poppic 1.nolist
297
+ %endmacro
298
+ %imacro movpic 2.nolist
299
+ %endmacro
300
+
301
+ %endif ; PIC -----------------------------------------
302
+
303
+ ; --------------------------------------------------------------------------
304
+ ; Align the next instruction on {2,4,8,16,..}-byte boundary.
305
+ ; ".balign n,,m" in GNU as
306
+ ;
307
+ %define MSKLE(x, y) (~(((y) & 0xFFFF) - ((x) & 0xFFFF)) >> 16)
308
+ %define FILLB(b, n) (($$-(b)) & ((n)-1))
309
+
310
+ %imacro alignx 1-2.nolist 0xFFFF
311
+ %%bs: \
312
+ times MSKLE(FILLB(%%bs, %1), %2) & MSKLE(16, FILLB($, %1)) & FILLB($, %1) \
313
+ db 0x90 ; nop
314
+ times MSKLE(FILLB(%%bs, %1), %2) & FILLB($, %1) / 9 \
315
+ db 0x8D, 0x9C, 0x23, 0x00, 0x00, 0x00, 0x00 ; lea ebx,[ebx+0x00000000]
316
+ times MSKLE(FILLB(%%bs, %1), %2) & FILLB($, %1) / 7 \
317
+ db 0x8D, 0xAC, 0x25, 0x00, 0x00, 0x00, 0x00 ; lea ebp,[ebp+0x00000000]
318
+ times MSKLE(FILLB(%%bs, %1), %2) & FILLB($, %1) / 6 \
319
+ db 0x8D, 0xAD, 0x00, 0x00, 0x00, 0x00 ; lea ebp,[ebp+0x00000000]
320
+ times MSKLE(FILLB(%%bs, %1), %2) & FILLB($, %1) / 4 \
321
+ db 0x8D, 0x6C, 0x25, 0x00 ; lea ebp,[ebp+0x00]
322
+ times MSKLE(FILLB(%%bs, %1), %2) & FILLB($, %1) / 3 \
323
+ db 0x8D, 0x6D, 0x00 ; lea ebp,[ebp+0x00]
324
+ times MSKLE(FILLB(%%bs, %1), %2) & FILLB($, %1) / 2 \
325
+ db 0x8B, 0xED ; mov ebp,ebp
326
+ times MSKLE(FILLB(%%bs, %1), %2) & FILLB($, %1) / 1 \
327
+ db 0x90 ; nop
328
+ %endmacro
329
+
330
+ ; Align the next data on {2,4,8,16,..}-byte boundary.
331
+ ;
332
+ %imacro alignz 1.nolist
333
+ align %1, db 0 ; filling zeros
334
+ %endmacro
335
+
336
+ %ifdef __x86_64__
337
+
338
+ %ifdef WIN64
339
+
340
+ %imacro collect_args 1
341
+ sub rsp, SIZEOF_XMMWORD
342
+ movaps XMMWORD [rsp], xmm6
343
+ sub rsp, SIZEOF_XMMWORD
344
+ movaps XMMWORD [rsp], xmm7
345
+ mov r10, rcx
346
+ %if %1 > 1
347
+ mov r11, rdx
348
+ %endif
349
+ %if %1 > 2
350
+ push r12
351
+ mov r12, r8
352
+ %endif
353
+ %if %1 > 3
354
+ push r13
355
+ mov r13, r9
356
+ %endif
357
+ %if %1 > 4
358
+ push r14
359
+ mov r14, [rax+48]
360
+ %endif
361
+ %if %1 > 5
362
+ push r15
363
+ mov r15, [rax+56]
364
+ %endif
365
+ push rsi
366
+ push rdi
367
+ %endmacro
368
+
369
+ %imacro uncollect_args 1
370
+ pop rdi
371
+ pop rsi
372
+ %if %1 > 5
373
+ pop r15
374
+ %endif
375
+ %if %1 > 4
376
+ pop r14
377
+ %endif
378
+ %if %1 > 3
379
+ pop r13
380
+ %endif
381
+ %if %1 > 2
382
+ pop r12
383
+ %endif
384
+ movaps xmm7, XMMWORD [rsp]
385
+ add rsp, SIZEOF_XMMWORD
386
+ movaps xmm6, XMMWORD [rsp]
387
+ add rsp, SIZEOF_XMMWORD
388
+ %endmacro
389
+
390
+ %imacro push_xmm 1
391
+ sub rsp, %1 * SIZEOF_XMMWORD
392
+ movaps XMMWORD [rsp+0*SIZEOF_XMMWORD], xmm8
393
+ %if %1 > 1
394
+ movaps XMMWORD [rsp+1*SIZEOF_XMMWORD], xmm9
395
+ %endif
396
+ %if %1 > 2
397
+ movaps XMMWORD [rsp+2*SIZEOF_XMMWORD], xmm10
398
+ %endif
399
+ %if %1 > 3
400
+ movaps XMMWORD [rsp+3*SIZEOF_XMMWORD], xmm11
401
+ %endif
402
+ %endmacro
403
+
404
+ %imacro pop_xmm 1
405
+ movaps xmm8, XMMWORD [rsp+0*SIZEOF_XMMWORD]
406
+ %if %1 > 1
407
+ movaps xmm9, XMMWORD [rsp+1*SIZEOF_XMMWORD]
408
+ %endif
409
+ %if %1 > 2
410
+ movaps xmm10, XMMWORD [rsp+2*SIZEOF_XMMWORD]
411
+ %endif
412
+ %if %1 > 3
413
+ movaps xmm11, XMMWORD [rsp+3*SIZEOF_XMMWORD]
414
+ %endif
415
+ add rsp, %1 * SIZEOF_XMMWORD
416
+ %endmacro
417
+
418
+ %else
419
+
420
+ %imacro collect_args 1
421
+ push r10
422
+ mov r10, rdi
423
+ %if %1 > 1
424
+ push r11
425
+ mov r11, rsi
426
+ %endif
427
+ %if %1 > 2
428
+ push r12
429
+ mov r12, rdx
430
+ %endif
431
+ %if %1 > 3
432
+ push r13
433
+ mov r13, rcx
434
+ %endif
435
+ %if %1 > 4
436
+ push r14
437
+ mov r14, r8
438
+ %endif
439
+ %if %1 > 5
440
+ push r15
441
+ mov r15, r9
442
+ %endif
443
+ %endmacro
444
+
445
+ %imacro uncollect_args 1
446
+ %if %1 > 5
447
+ pop r15
448
+ %endif
449
+ %if %1 > 4
450
+ pop r14
451
+ %endif
452
+ %if %1 > 3
453
+ pop r13
454
+ %endif
455
+ %if %1 > 2
456
+ pop r12
457
+ %endif
458
+ %if %1 > 1
459
+ pop r11
460
+ %endif
461
+ pop r10
462
+ %endmacro
463
+
464
+ %imacro push_xmm 1
465
+ %endmacro
466
+
467
+ %imacro pop_xmm 1
468
+ %endmacro
469
+
470
+ %endif
471
+
472
+ %endif
473
+
474
+ ; --------------------------------------------------------------------------
475
+ ; Defines picked up from the C headers
476
+ ;
477
+ %include "jsimdcfg.inc"
478
+
479
+ ; --------------------------------------------------------------------------