react-native-quick-crypto 1.1.0 → 1.1.1

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 (687) hide show
  1. package/android/build.gradle +5 -1
  2. package/cpp/argon2/HybridArgon2.cpp +10 -3
  3. package/cpp/blake3/HybridBlake3.cpp +5 -3
  4. package/cpp/cipher/CCMCipher.cpp +29 -16
  5. package/cpp/cipher/CCMCipher.hpp +2 -4
  6. package/cpp/cipher/ChaCha20Cipher.cpp +14 -18
  7. package/cpp/cipher/ChaCha20Cipher.hpp +2 -4
  8. package/cpp/cipher/ChaCha20Poly1305Cipher.cpp +34 -23
  9. package/cpp/cipher/ChaCha20Poly1305Cipher.hpp +2 -4
  10. package/cpp/cipher/GCMCipher.cpp +14 -15
  11. package/cpp/cipher/HybridCipher.cpp +39 -36
  12. package/cpp/cipher/HybridCipher.hpp +17 -1
  13. package/cpp/cipher/HybridRsaCipher.cpp +74 -29
  14. package/cpp/cipher/OCBCipher.cpp +4 -3
  15. package/cpp/cipher/XChaCha20Poly1305Cipher.cpp +14 -13
  16. package/cpp/cipher/XSalsa20Cipher.cpp +72 -6
  17. package/cpp/cipher/XSalsa20Cipher.hpp +25 -3
  18. package/cpp/cipher/XSalsa20Poly1305Cipher.cpp +21 -25
  19. package/cpp/dh/HybridDiffieHellman.cpp +29 -0
  20. package/cpp/ec/HybridEcKeyPair.cpp +35 -33
  21. package/cpp/ec/HybridEcKeyPair.hpp +3 -7
  22. package/cpp/ecdh/HybridECDH.cpp +23 -0
  23. package/cpp/ed25519/HybridEdKeyPair.cpp +73 -117
  24. package/cpp/ed25519/HybridEdKeyPair.hpp +5 -9
  25. package/cpp/hash/HybridHash.cpp +5 -7
  26. package/cpp/hkdf/HybridHkdf.cpp +6 -4
  27. package/cpp/hmac/HybridHmac.cpp +4 -6
  28. package/cpp/kmac/HybridKmac.cpp +4 -4
  29. package/cpp/mldsa/HybridMlDsaKeyPair.cpp +37 -49
  30. package/cpp/mlkem/HybridMlKemKeyPair.cpp +39 -43
  31. package/cpp/pbkdf2/HybridPbkdf2.cpp +7 -8
  32. package/cpp/rsa/HybridRsaKeyPair.cpp +5 -8
  33. package/cpp/rsa/HybridRsaKeyPair.hpp +4 -7
  34. package/cpp/scrypt/HybridScrypt.cpp +6 -4
  35. package/cpp/sign/HybridSignHandle.cpp +25 -68
  36. package/cpp/sign/HybridVerifyHandle.cpp +23 -60
  37. package/cpp/utils/HybridUtils.cpp +183 -43
  38. package/cpp/utils/HybridUtils.hpp +9 -2
  39. package/cpp/utils/QuickCryptoUtils.hpp +72 -0
  40. package/lib/commonjs/argon2.js +51 -2
  41. package/lib/commonjs/argon2.js.map +1 -1
  42. package/lib/commonjs/cipher.js +109 -11
  43. package/lib/commonjs/cipher.js.map +1 -1
  44. package/lib/commonjs/dsa.js +8 -2
  45. package/lib/commonjs/dsa.js.map +1 -1
  46. package/lib/commonjs/hash.js +15 -5
  47. package/lib/commonjs/hash.js.map +1 -1
  48. package/lib/commonjs/hkdf.js +33 -6
  49. package/lib/commonjs/hkdf.js.map +1 -1
  50. package/lib/commonjs/hmac.js +15 -5
  51. package/lib/commonjs/hmac.js.map +1 -1
  52. package/lib/commonjs/keys/publicCipher.js +10 -4
  53. package/lib/commonjs/keys/publicCipher.js.map +1 -1
  54. package/lib/commonjs/random.js +11 -2
  55. package/lib/commonjs/random.js.map +1 -1
  56. package/lib/commonjs/rsa.js +12 -5
  57. package/lib/commonjs/rsa.js.map +1 -1
  58. package/lib/commonjs/scrypt.js +47 -6
  59. package/lib/commonjs/scrypt.js.map +1 -1
  60. package/lib/commonjs/subtle.js +76 -5
  61. package/lib/commonjs/subtle.js.map +1 -1
  62. package/lib/commonjs/utils/cipher.js +18 -7
  63. package/lib/commonjs/utils/cipher.js.map +1 -1
  64. package/lib/commonjs/utils/conversion.js +33 -9
  65. package/lib/commonjs/utils/conversion.js.map +1 -1
  66. package/lib/commonjs/utils/timingSafeEqual.js +7 -2
  67. package/lib/commonjs/utils/timingSafeEqual.js.map +1 -1
  68. package/lib/commonjs/x509certificate.js +6 -6
  69. package/lib/commonjs/x509certificate.js.map +1 -1
  70. package/lib/module/argon2.js +51 -2
  71. package/lib/module/argon2.js.map +1 -1
  72. package/lib/module/cipher.js +109 -11
  73. package/lib/module/cipher.js.map +1 -1
  74. package/lib/module/dsa.js +8 -2
  75. package/lib/module/dsa.js.map +1 -1
  76. package/lib/module/hash.js +15 -5
  77. package/lib/module/hash.js.map +1 -1
  78. package/lib/module/hkdf.js +33 -6
  79. package/lib/module/hkdf.js.map +1 -1
  80. package/lib/module/hmac.js +15 -5
  81. package/lib/module/hmac.js.map +1 -1
  82. package/lib/module/keys/publicCipher.js +10 -4
  83. package/lib/module/keys/publicCipher.js.map +1 -1
  84. package/lib/module/random.js +11 -2
  85. package/lib/module/random.js.map +1 -1
  86. package/lib/module/rsa.js +11 -4
  87. package/lib/module/rsa.js.map +1 -1
  88. package/lib/module/scrypt.js +47 -6
  89. package/lib/module/scrypt.js.map +1 -1
  90. package/lib/module/subtle.js +76 -5
  91. package/lib/module/subtle.js.map +1 -1
  92. package/lib/module/utils/cipher.js +18 -7
  93. package/lib/module/utils/cipher.js.map +1 -1
  94. package/lib/module/utils/conversion.js +33 -9
  95. package/lib/module/utils/conversion.js.map +1 -1
  96. package/lib/module/utils/timingSafeEqual.js +8 -3
  97. package/lib/module/utils/timingSafeEqual.js.map +1 -1
  98. package/lib/module/x509certificate.js +6 -6
  99. package/lib/module/x509certificate.js.map +1 -1
  100. package/lib/typescript/argon2.d.ts.map +1 -1
  101. package/lib/typescript/cipher.d.ts +2 -2
  102. package/lib/typescript/cipher.d.ts.map +1 -1
  103. package/lib/typescript/dsa.d.ts.map +1 -1
  104. package/lib/typescript/hash.d.ts +2 -2
  105. package/lib/typescript/hash.d.ts.map +1 -1
  106. package/lib/typescript/hkdf.d.ts.map +1 -1
  107. package/lib/typescript/hmac.d.ts +2 -2
  108. package/lib/typescript/hmac.d.ts.map +1 -1
  109. package/lib/typescript/index.d.ts +1 -1
  110. package/lib/typescript/index.d.ts.map +1 -1
  111. package/lib/typescript/keys/publicCipher.d.ts.map +1 -1
  112. package/lib/typescript/random.d.ts.map +1 -1
  113. package/lib/typescript/rsa.d.ts.map +1 -1
  114. package/lib/typescript/scrypt.d.ts.map +1 -1
  115. package/lib/typescript/specs/utils.nitro.d.ts +0 -2
  116. package/lib/typescript/specs/utils.nitro.d.ts.map +1 -1
  117. package/lib/typescript/subtle.d.ts.map +1 -1
  118. package/lib/typescript/utils/cipher.d.ts +13 -1
  119. package/lib/typescript/utils/cipher.d.ts.map +1 -1
  120. package/lib/typescript/utils/conversion.d.ts +9 -6
  121. package/lib/typescript/utils/conversion.d.ts.map +1 -1
  122. package/lib/typescript/utils/timingSafeEqual.d.ts.map +1 -1
  123. package/lib/typescript/x509certificate.d.ts.map +1 -1
  124. package/nitrogen/generated/shared/c++/HybridUtilsSpec.cpp +0 -2
  125. package/nitrogen/generated/shared/c++/HybridUtilsSpec.hpp +0 -3
  126. package/package.json +37 -5
  127. package/src/argon2.ts +80 -2
  128. package/src/cipher.ts +139 -15
  129. package/src/dsa.ts +11 -2
  130. package/src/hash.ts +17 -7
  131. package/src/hkdf.ts +44 -6
  132. package/src/hmac.ts +17 -7
  133. package/src/keys/publicCipher.ts +10 -4
  134. package/src/random.ts +11 -2
  135. package/src/rsa.ts +18 -4
  136. package/src/scrypt.ts +73 -6
  137. package/src/specs/utils.nitro.ts +0 -2
  138. package/src/subtle.ts +90 -8
  139. package/src/utils/cipher.ts +30 -8
  140. package/src/utils/conversion.ts +58 -20
  141. package/src/utils/timingSafeEqual.ts +8 -3
  142. package/src/x509certificate.ts +5 -6
  143. package/deps/blake3/.cargo/config.toml +0 -2
  144. package/deps/blake3/.git-blame-ignore-revs +0 -2
  145. package/deps/blake3/.github/workflows/build_b3sum.py +0 -38
  146. package/deps/blake3/.github/workflows/ci.yml +0 -491
  147. package/deps/blake3/.github/workflows/tag.yml +0 -43
  148. package/deps/blake3/.github/workflows/upload_github_release_asset.py +0 -73
  149. package/deps/blake3/CONTRIBUTING.md +0 -31
  150. package/deps/blake3/Cargo.toml +0 -135
  151. package/deps/blake3/b3sum/Cargo.lock +0 -513
  152. package/deps/blake3/b3sum/Cargo.toml +0 -26
  153. package/deps/blake3/b3sum/README.md +0 -72
  154. package/deps/blake3/b3sum/src/main.rs +0 -564
  155. package/deps/blake3/b3sum/src/unit_tests.rs +0 -235
  156. package/deps/blake3/b3sum/tests/cli_tests.rs +0 -680
  157. package/deps/blake3/b3sum/what_does_check_do.md +0 -176
  158. package/deps/blake3/benches/bench.rs +0 -623
  159. package/deps/blake3/build.rs +0 -389
  160. package/deps/blake3/c/CMakeLists.txt +0 -383
  161. package/deps/blake3/c/CMakePresets.json +0 -73
  162. package/deps/blake3/c/Makefile.testing +0 -82
  163. package/deps/blake3/c/blake3-config.cmake.in +0 -14
  164. package/deps/blake3/c/blake3_avx2.c +0 -326
  165. package/deps/blake3/c/blake3_avx2_x86-64_unix.S +0 -1815
  166. package/deps/blake3/c/blake3_avx2_x86-64_windows_gnu.S +0 -1817
  167. package/deps/blake3/c/blake3_avx2_x86-64_windows_msvc.asm +0 -1828
  168. package/deps/blake3/c/blake3_avx512.c +0 -1388
  169. package/deps/blake3/c/blake3_avx512_x86-64_unix.S +0 -4824
  170. package/deps/blake3/c/blake3_avx512_x86-64_windows_gnu.S +0 -2615
  171. package/deps/blake3/c/blake3_avx512_x86-64_windows_msvc.asm +0 -2634
  172. package/deps/blake3/c/blake3_c_rust_bindings/Cargo.toml +0 -32
  173. package/deps/blake3/c/blake3_c_rust_bindings/README.md +0 -4
  174. package/deps/blake3/c/blake3_c_rust_bindings/benches/bench.rs +0 -477
  175. package/deps/blake3/c/blake3_c_rust_bindings/build.rs +0 -253
  176. package/deps/blake3/c/blake3_c_rust_bindings/cross_test.sh +0 -31
  177. package/deps/blake3/c/blake3_c_rust_bindings/src/lib.rs +0 -333
  178. package/deps/blake3/c/blake3_c_rust_bindings/src/test.rs +0 -696
  179. package/deps/blake3/c/blake3_sse2.c +0 -566
  180. package/deps/blake3/c/blake3_sse2_x86-64_unix.S +0 -2291
  181. package/deps/blake3/c/blake3_sse2_x86-64_windows_gnu.S +0 -2332
  182. package/deps/blake3/c/blake3_sse2_x86-64_windows_msvc.asm +0 -2350
  183. package/deps/blake3/c/blake3_sse41.c +0 -560
  184. package/deps/blake3/c/blake3_sse41_x86-64_unix.S +0 -2028
  185. package/deps/blake3/c/blake3_sse41_x86-64_windows_gnu.S +0 -2069
  186. package/deps/blake3/c/blake3_sse41_x86-64_windows_msvc.asm +0 -2089
  187. package/deps/blake3/c/blake3_tbb.cpp +0 -37
  188. package/deps/blake3/c/dependencies/CMakeLists.txt +0 -3
  189. package/deps/blake3/c/dependencies/tbb/CMakeLists.txt +0 -28
  190. package/deps/blake3/c/example.c +0 -36
  191. package/deps/blake3/c/example_tbb.c +0 -57
  192. package/deps/blake3/c/libblake3.pc.in +0 -12
  193. package/deps/blake3/c/main.c +0 -166
  194. package/deps/blake3/c/test.py +0 -97
  195. package/deps/blake3/media/B3.svg +0 -70
  196. package/deps/blake3/media/BLAKE3.svg +0 -85
  197. package/deps/blake3/media/speed.svg +0 -1474
  198. package/deps/blake3/reference_impl/Cargo.toml +0 -8
  199. package/deps/blake3/reference_impl/README.md +0 -14
  200. package/deps/blake3/reference_impl/reference_impl.rs +0 -374
  201. package/deps/blake3/src/ffi_avx2.rs +0 -65
  202. package/deps/blake3/src/ffi_avx512.rs +0 -169
  203. package/deps/blake3/src/ffi_neon.rs +0 -82
  204. package/deps/blake3/src/ffi_sse2.rs +0 -126
  205. package/deps/blake3/src/ffi_sse41.rs +0 -126
  206. package/deps/blake3/src/guts.rs +0 -60
  207. package/deps/blake3/src/hazmat.rs +0 -704
  208. package/deps/blake3/src/io.rs +0 -64
  209. package/deps/blake3/src/join.rs +0 -92
  210. package/deps/blake3/src/lib.rs +0 -1835
  211. package/deps/blake3/src/platform.rs +0 -587
  212. package/deps/blake3/src/portable.rs +0 -198
  213. package/deps/blake3/src/rust_avx2.rs +0 -474
  214. package/deps/blake3/src/rust_sse2.rs +0 -775
  215. package/deps/blake3/src/rust_sse41.rs +0 -766
  216. package/deps/blake3/src/test.rs +0 -1049
  217. package/deps/blake3/src/traits.rs +0 -227
  218. package/deps/blake3/src/wasm32_simd.rs +0 -794
  219. package/deps/blake3/test_vectors/Cargo.toml +0 -19
  220. package/deps/blake3/test_vectors/cross_test.sh +0 -25
  221. package/deps/blake3/test_vectors/src/bin/generate.rs +0 -4
  222. package/deps/blake3/test_vectors/src/lib.rs +0 -350
  223. package/deps/blake3/test_vectors/test_vectors.json +0 -217
  224. package/deps/blake3/tools/compiler_version/Cargo.toml +0 -7
  225. package/deps/blake3/tools/compiler_version/build.rs +0 -6
  226. package/deps/blake3/tools/compiler_version/src/main.rs +0 -27
  227. package/deps/blake3/tools/instruction_set_support/Cargo.toml +0 -6
  228. package/deps/blake3/tools/instruction_set_support/src/main.rs +0 -10
  229. package/deps/blake3/tools/release.md +0 -16
  230. package/deps/ncrypto/.bazelignore +0 -4
  231. package/deps/ncrypto/.bazelrc +0 -1
  232. package/deps/ncrypto/.bazelversion +0 -1
  233. package/deps/ncrypto/.clang-format +0 -111
  234. package/deps/ncrypto/.github/workflows/bazel.yml +0 -58
  235. package/deps/ncrypto/.github/workflows/commitlint.yml +0 -16
  236. package/deps/ncrypto/.github/workflows/linter.yml +0 -38
  237. package/deps/ncrypto/.github/workflows/macos.yml +0 -43
  238. package/deps/ncrypto/.github/workflows/release-please.yml +0 -16
  239. package/deps/ncrypto/.github/workflows/ubuntu.yml +0 -128
  240. package/deps/ncrypto/.github/workflows/visual-studio.yml +0 -49
  241. package/deps/ncrypto/.python-version +0 -1
  242. package/deps/ncrypto/.release-please-manifest.json +0 -3
  243. package/deps/ncrypto/BUILD.bazel +0 -44
  244. package/deps/ncrypto/CHANGELOG.md +0 -37
  245. package/deps/ncrypto/CMakeLists.txt +0 -79
  246. package/deps/ncrypto/MODULE.bazel +0 -16
  247. package/deps/ncrypto/MODULE.bazel.lock +0 -461
  248. package/deps/ncrypto/cmake/CPM.cmake +0 -1225
  249. package/deps/ncrypto/cmake/ncrypto-flags.cmake +0 -17
  250. package/deps/ncrypto/ncrypto.pc.in +0 -10
  251. package/deps/ncrypto/patches/0001-Expose-libdecrepit-so-NodeJS-can-use-it-for-ncrypto.patch +0 -28
  252. package/deps/ncrypto/pyproject.toml +0 -38
  253. package/deps/ncrypto/release-please-config.json +0 -11
  254. package/deps/ncrypto/src/CMakeLists.txt +0 -40
  255. package/deps/ncrypto/tests/BUILD.bazel +0 -11
  256. package/deps/ncrypto/tests/CMakeLists.txt +0 -7
  257. package/deps/ncrypto/tests/basic.cpp +0 -856
  258. package/deps/ncrypto/tools/run-clang-format.sh +0 -42
  259. package/deps/simdutf/.clang-format +0 -4
  260. package/deps/simdutf/.github/ISSUE_TEMPLATE/bug_report.md +0 -62
  261. package/deps/simdutf/.github/ISSUE_TEMPLATE/config.yml +0 -1
  262. package/deps/simdutf/.github/ISSUE_TEMPLATE/feature_request.md +0 -35
  263. package/deps/simdutf/.github/ISSUE_TEMPLATE/standard-issue-template.md +0 -29
  264. package/deps/simdutf/.github/pull_request_template.md +0 -51
  265. package/deps/simdutf/.github/workflows/aarch64.yml +0 -39
  266. package/deps/simdutf/.github/workflows/alpine.yml +0 -27
  267. package/deps/simdutf/.github/workflows/amalgamation_demos.yml +0 -34
  268. package/deps/simdutf/.github/workflows/armv7.yml +0 -32
  269. package/deps/simdutf/.github/workflows/atomic_fuzz.yml +0 -25
  270. package/deps/simdutf/.github/workflows/cifuzz.yml +0 -37
  271. package/deps/simdutf/.github/workflows/clangformat.yml +0 -36
  272. package/deps/simdutf/.github/workflows/debian-latestcxxstandards.yml +0 -40
  273. package/deps/simdutf/.github/workflows/debian.yml +0 -33
  274. package/deps/simdutf/.github/workflows/documentation.yml +0 -36
  275. package/deps/simdutf/.github/workflows/emscripten.yml +0 -19
  276. package/deps/simdutf/.github/workflows/loongarch64-gcc-14.2.yml +0 -39
  277. package/deps/simdutf/.github/workflows/macos-latest.yml +0 -29
  278. package/deps/simdutf/.github/workflows/msys2-clang.yml +0 -48
  279. package/deps/simdutf/.github/workflows/msys2.yml +0 -50
  280. package/deps/simdutf/.github/workflows/ppc64le.yml +0 -29
  281. package/deps/simdutf/.github/workflows/rvv-1024-clang-18.yml +0 -35
  282. package/deps/simdutf/.github/workflows/rvv-128-clang-17.yml +0 -35
  283. package/deps/simdutf/.github/workflows/rvv-256-gcc-14.yml +0 -31
  284. package/deps/simdutf/.github/workflows/s390x.yml +0 -29
  285. package/deps/simdutf/.github/workflows/selective-amalgamation.yml +0 -29
  286. package/deps/simdutf/.github/workflows/typos.yml +0 -19
  287. package/deps/simdutf/.github/workflows/ubuntu22-cxx20.yml +0 -30
  288. package/deps/simdutf/.github/workflows/ubuntu22.yml +0 -32
  289. package/deps/simdutf/.github/workflows/ubuntu22_gcc12.yml +0 -27
  290. package/deps/simdutf/.github/workflows/ubuntu22sani.yml +0 -29
  291. package/deps/simdutf/.github/workflows/ubuntu24-cxxstandards.yml +0 -34
  292. package/deps/simdutf/.github/workflows/ubuntu24-unsignedchar.yml +0 -34
  293. package/deps/simdutf/.github/workflows/ubuntu24.yml +0 -32
  294. package/deps/simdutf/.github/workflows/ubuntu24sani.yml +0 -36
  295. package/deps/simdutf/.github/workflows/ubuntu24sani_clang.yml +0 -29
  296. package/deps/simdutf/.github/workflows/vs17-arm-ci.yml +0 -21
  297. package/deps/simdutf/.github/workflows/vs17-ci-cxx20.yml +0 -41
  298. package/deps/simdutf/.github/workflows/vs17-ci.yml +0 -41
  299. package/deps/simdutf/.github/workflows/vs17-clang-ci.yml +0 -41
  300. package/deps/simdutf/.github/workflows/vs17-cxxstandards.yml +0 -36
  301. package/deps/simdutf/AI_USAGE_POLICY.md +0 -56
  302. package/deps/simdutf/AUTHORS +0 -6
  303. package/deps/simdutf/CMakeLists.txt +0 -231
  304. package/deps/simdutf/CONTRIBUTING.md +0 -214
  305. package/deps/simdutf/CONTRIBUTORS +0 -1
  306. package/deps/simdutf/Doxyfile +0 -2584
  307. package/deps/simdutf/Makefile.crosscompile +0 -54
  308. package/deps/simdutf/README-RVV.md +0 -16
  309. package/deps/simdutf/SECURITY.md +0 -8
  310. package/deps/simdutf/benchmarks/CMakeLists.txt +0 -101
  311. package/deps/simdutf/benchmarks/alignment.cpp +0 -150
  312. package/deps/simdutf/benchmarks/base64/CMakeLists.txt +0 -30
  313. package/deps/simdutf/benchmarks/base64/benchmark_base64.cpp +0 -875
  314. package/deps/simdutf/benchmarks/base64/libbase64_spaces.h +0 -49
  315. package/deps/simdutf/benchmarks/base64/node_base64.h +0 -227
  316. package/deps/simdutf/benchmarks/base64/openssl3_base64.h +0 -334
  317. package/deps/simdutf/benchmarks/benchmark.cpp +0 -65
  318. package/deps/simdutf/benchmarks/benchmark_to_well_formed_utf16.cpp +0 -347
  319. package/deps/simdutf/benchmarks/competition/.clang-format-ignore +0 -5
  320. package/deps/simdutf/benchmarks/competition/CppCon2018/utf_utils.cpp +0 -1276
  321. package/deps/simdutf/benchmarks/competition/CppCon2018/utf_utils.h +0 -595
  322. package/deps/simdutf/benchmarks/competition/README.md +0 -7
  323. package/deps/simdutf/benchmarks/competition/hoehrmann/hoehrmann.h +0 -91
  324. package/deps/simdutf/benchmarks/competition/inoue2008/inoue_utf8_to_utf16.h +0 -444
  325. package/deps/simdutf/benchmarks/competition/inoue2008/inoue_utf8_to_utf16_tables.h +0 -13183
  326. package/deps/simdutf/benchmarks/competition/inoue2008/script.py +0 -73
  327. package/deps/simdutf/benchmarks/competition/llvm/ConvertUTF.cpp +0 -738
  328. package/deps/simdutf/benchmarks/competition/llvm/ConvertUTF.h +0 -293
  329. package/deps/simdutf/benchmarks/competition/u8u16/COPYRIGHT +0 -8
  330. package/deps/simdutf/benchmarks/competition/u8u16/Makefile +0 -44
  331. package/deps/simdutf/benchmarks/competition/u8u16/OSL3.0.txt +0 -169
  332. package/deps/simdutf/benchmarks/competition/u8u16/Profiling/BOM_Profiler.h +0 -148
  333. package/deps/simdutf/benchmarks/competition/u8u16/Profiling/i386_timer.h +0 -45
  334. package/deps/simdutf/benchmarks/competition/u8u16/Profiling/ppc_timer.c +0 -34
  335. package/deps/simdutf/benchmarks/competition/u8u16/README +0 -56
  336. package/deps/simdutf/benchmarks/competition/u8u16/config/config_defs.h +0 -43
  337. package/deps/simdutf/benchmarks/competition/u8u16/config/g4_config.h +0 -27
  338. package/deps/simdutf/benchmarks/competition/u8u16/config/mmx_config.h +0 -16
  339. package/deps/simdutf/benchmarks/competition/u8u16/config/p4_config.h +0 -18
  340. package/deps/simdutf/benchmarks/competition/u8u16/config/p4_ideal_config.h +0 -16
  341. package/deps/simdutf/benchmarks/competition/u8u16/config/spu_config.h +0 -28
  342. package/deps/simdutf/benchmarks/competition/u8u16/config/ssse3_config.h +0 -20
  343. package/deps/simdutf/benchmarks/competition/u8u16/iconv_u8u16.c +0 -2
  344. package/deps/simdutf/benchmarks/competition/u8u16/lib/altivec_simd.h +0 -440
  345. package/deps/simdutf/benchmarks/competition/u8u16/lib/libgen/make_basic_ops.py +0 -121
  346. package/deps/simdutf/benchmarks/competition/u8u16/lib/libgen/make_half_operand_versions.py +0 -158
  347. package/deps/simdutf/benchmarks/competition/u8u16/lib/libgen/make_test.py +0 -270
  348. package/deps/simdutf/benchmarks/competition/u8u16/lib/mmx_simd.h +0 -141
  349. package/deps/simdutf/benchmarks/competition/u8u16/lib/mmx_simd_basic.h +0 -216
  350. package/deps/simdutf/benchmarks/competition/u8u16/lib/mmx_simd_built_in.h +0 -119
  351. package/deps/simdutf/benchmarks/competition/u8u16/lib/mmx_simd_modified.h +0 -2430
  352. package/deps/simdutf/benchmarks/competition/u8u16/lib/outline.txt +0 -39
  353. package/deps/simdutf/benchmarks/competition/u8u16/lib/spu_simd.h +0 -421
  354. package/deps/simdutf/benchmarks/competition/u8u16/lib/sse_simd.h +0 -836
  355. package/deps/simdutf/benchmarks/competition/u8u16/lib/stdint.h +0 -222
  356. package/deps/simdutf/benchmarks/competition/u8u16/libu8u16_BE.c +0 -4
  357. package/deps/simdutf/benchmarks/competition/u8u16/libu8u16_LE.c +0 -5
  358. package/deps/simdutf/benchmarks/competition/u8u16/proto/u8u16.py +0 -390
  359. package/deps/simdutf/benchmarks/competition/u8u16/src/Makefile +0 -18
  360. package/deps/simdutf/benchmarks/competition/u8u16/src/bytelex.h +0 -448
  361. package/deps/simdutf/benchmarks/competition/u8u16/src/charsets/ASCII_EBCDIC.h +0 -284
  362. package/deps/simdutf/benchmarks/competition/u8u16/src/libu8u16.c +0 -1975
  363. package/deps/simdutf/benchmarks/competition/u8u16/src/libu8u16.pdf +0 -0
  364. package/deps/simdutf/benchmarks/competition/u8u16/src/libu8u16.w +0 -2263
  365. package/deps/simdutf/benchmarks/competition/u8u16/src/multiliteral.h +0 -239
  366. package/deps/simdutf/benchmarks/competition/u8u16/src/u8u16.c +0 -232
  367. package/deps/simdutf/benchmarks/competition/u8u16/src/x8x16.c +0 -194
  368. package/deps/simdutf/benchmarks/competition/u8u16/src/xml_error.c +0 -193
  369. package/deps/simdutf/benchmarks/competition/u8u16/src/xml_error.h +0 -167
  370. package/deps/simdutf/benchmarks/competition/u8u16/src/xmldecl.c +0 -288
  371. package/deps/simdutf/benchmarks/competition/u8u16/src/xmldecl.h +0 -117
  372. package/deps/simdutf/benchmarks/competition/u8u16/u8u16_g4.c +0 -2
  373. package/deps/simdutf/benchmarks/competition/u8u16/u8u16_mmx.c +0 -2
  374. package/deps/simdutf/benchmarks/competition/u8u16/u8u16_p4.c +0 -3
  375. package/deps/simdutf/benchmarks/competition/u8u16/u8u16_p4_ideal.c +0 -2
  376. package/deps/simdutf/benchmarks/competition/u8u16/u8u16_spu.c +0 -2
  377. package/deps/simdutf/benchmarks/competition/u8u16/u8u16_ssse3.c +0 -3
  378. package/deps/simdutf/benchmarks/competition/u8u16/x8x16_p4.c +0 -2
  379. package/deps/simdutf/benchmarks/competition/utf8lut/LICENSE +0 -23
  380. package/deps/simdutf/benchmarks/competition/utf8lut/data/test_minimal.txt +0 -44
  381. package/deps/simdutf/benchmarks/competition/utf8lut/readme.md +0 -106
  382. package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_clang_corr_tests.cmd +0 -11
  383. package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_clang_corr_tests.sh +0 -13
  384. package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_gcc_corr_tests.sh +0 -13
  385. package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_gcc_example.sh +0 -13
  386. package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_gcc_file_conv.sh +0 -14
  387. package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_gcc_iconv_lib.sh +0 -11
  388. package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_gcc_iconv_sample.sh +0 -8
  389. package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_mingw_corr_tests.cmd +0 -12
  390. package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_mingw_example.cmd +0 -13
  391. package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_mingw_file_conv.cmd +0 -14
  392. package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_mingw_iconv_lib.cmd +0 -11
  393. package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_mingw_iconv_sample.cmd +0 -8
  394. package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_msvc_corr_tests.cmd +0 -11
  395. package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_msvc_example.cmd +0 -12
  396. package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_msvc_file_conv.cmd +0 -13
  397. package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_msvc_iconv_lib.cmd +0 -10
  398. package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_msvc_iconv_sample.cmd +0 -9
  399. package/deps/simdutf/benchmarks/competition/utf8lut/scripts/html_table.py +0 -25
  400. package/deps/simdutf/benchmarks/competition/utf8lut/scripts/measure.py +0 -94
  401. package/deps/simdutf/benchmarks/competition/utf8lut/scripts/resize.py +0 -20
  402. package/deps/simdutf/benchmarks/competition/utf8lut/scripts/wipe_all.cmd +0 -2
  403. package/deps/simdutf/benchmarks/competition/utf8lut/scripts/wipe_interm.cmd +0 -1
  404. package/deps/simdutf/benchmarks/competition/utf8lut/src/base/CustomMemcpy.h +0 -75
  405. package/deps/simdutf/benchmarks/competition/utf8lut/src/base/PerfDefs.h +0 -47
  406. package/deps/simdutf/benchmarks/competition/utf8lut/src/base/Timing.cpp +0 -17
  407. package/deps/simdutf/benchmarks/competition/utf8lut/src/base/Timing.h +0 -76
  408. package/deps/simdutf/benchmarks/competition/utf8lut/src/buffer/AllProcessors.cpp +0 -35
  409. package/deps/simdutf/benchmarks/competition/utf8lut/src/buffer/BaseBufferProcessor.cpp +0 -117
  410. package/deps/simdutf/benchmarks/competition/utf8lut/src/buffer/BaseBufferProcessor.h +0 -210
  411. package/deps/simdutf/benchmarks/competition/utf8lut/src/buffer/BufferDecoder.h +0 -158
  412. package/deps/simdutf/benchmarks/competition/utf8lut/src/buffer/BufferEncoder.h +0 -104
  413. package/deps/simdutf/benchmarks/competition/utf8lut/src/buffer/ProcessorPlugins.h +0 -334
  414. package/deps/simdutf/benchmarks/competition/utf8lut/src/buffer/ProcessorSelector.h +0 -186
  415. package/deps/simdutf/benchmarks/competition/utf8lut/src/core/DecoderLut.cpp +0 -140
  416. package/deps/simdutf/benchmarks/competition/utf8lut/src/core/DecoderLut.h +0 -42
  417. package/deps/simdutf/benchmarks/competition/utf8lut/src/core/DecoderProcess.h +0 -100
  418. package/deps/simdutf/benchmarks/competition/utf8lut/src/core/Dfa.h +0 -57
  419. package/deps/simdutf/benchmarks/competition/utf8lut/src/core/EncoderLut.cpp +0 -85
  420. package/deps/simdutf/benchmarks/competition/utf8lut/src/core/EncoderLut.h +0 -27
  421. package/deps/simdutf/benchmarks/competition/utf8lut/src/core/EncoderProcess.h +0 -126
  422. package/deps/simdutf/benchmarks/competition/utf8lut/src/core/ProcessTrivial.h +0 -108
  423. package/deps/simdutf/benchmarks/competition/utf8lut/src/iconv/iconv.cpp +0 -139
  424. package/deps/simdutf/benchmarks/competition/utf8lut/src/iconv/iconv.h +0 -74
  425. package/deps/simdutf/benchmarks/competition/utf8lut/src/message/MessageConverter.cpp +0 -65
  426. package/deps/simdutf/benchmarks/competition/utf8lut/src/message/MessageConverter.h +0 -91
  427. package/deps/simdutf/benchmarks/competition/utf8lut/src/tests/CorrectnessTests.cpp +0 -772
  428. package/deps/simdutf/benchmarks/competition/utf8lut/src/tests/Example.cpp +0 -12
  429. package/deps/simdutf/benchmarks/competition/utf8lut/src/tests/FileConverter.cpp +0 -486
  430. package/deps/simdutf/benchmarks/competition/utf8lut/src/tests/iconv_sample.c +0 -162
  431. package/deps/simdutf/benchmarks/competition/utf8lut/src/utf8lut.h +0 -15
  432. package/deps/simdutf/benchmarks/competition/utf8sse4/fromutf8-sse.cpp +0 -292
  433. package/deps/simdutf/benchmarks/competition/utfcpp/LICENSE +0 -23
  434. package/deps/simdutf/benchmarks/competition/utfcpp/README.md +0 -1503
  435. package/deps/simdutf/benchmarks/competition/utfcpp/source/utf8/checked.h +0 -335
  436. package/deps/simdutf/benchmarks/competition/utfcpp/source/utf8/core.h +0 -338
  437. package/deps/simdutf/benchmarks/competition/utfcpp/source/utf8/cpp11.h +0 -103
  438. package/deps/simdutf/benchmarks/competition/utfcpp/source/utf8/cpp17.h +0 -103
  439. package/deps/simdutf/benchmarks/competition/utfcpp/source/utf8/unchecked.h +0 -274
  440. package/deps/simdutf/benchmarks/competition/utfcpp/source/utf8.h +0 -34
  441. package/deps/simdutf/benchmarks/dataset/README.md +0 -155
  442. package/deps/simdutf/benchmarks/dataset/emoji.txt +0 -204
  443. package/deps/simdutf/benchmarks/dataset/scripts/utf8type.py +0 -40
  444. package/deps/simdutf/benchmarks/dataset/wikipedia_mars/Makefile +0 -80
  445. package/deps/simdutf/benchmarks/dataset/wikipedia_mars/convert_to_utf6.py +0 -20
  446. package/deps/simdutf/benchmarks/find/CMakeLists.txt +0 -6
  447. package/deps/simdutf/benchmarks/find/findbenchmark.cpp +0 -63
  448. package/deps/simdutf/benchmarks/find/findbenchmarker.h +0 -46
  449. package/deps/simdutf/benchmarks/shortbench.cpp +0 -555
  450. package/deps/simdutf/benchmarks/src/CMakeLists.txt +0 -52
  451. package/deps/simdutf/benchmarks/src/apple_arm_events.h +0 -1104
  452. package/deps/simdutf/benchmarks/src/benchmark.cpp +0 -3899
  453. package/deps/simdutf/benchmarks/src/benchmark.h +0 -317
  454. package/deps/simdutf/benchmarks/src/benchmark_base.cpp +0 -144
  455. package/deps/simdutf/benchmarks/src/benchmark_base.h +0 -98
  456. package/deps/simdutf/benchmarks/src/cmdline.cpp +0 -176
  457. package/deps/simdutf/benchmarks/src/cmdline.h +0 -35
  458. package/deps/simdutf/benchmarks/src/event_counter.h +0 -162
  459. package/deps/simdutf/benchmarks/src/linux-perf-events.h +0 -104
  460. package/deps/simdutf/benchmarks/stream.cpp +0 -209
  461. package/deps/simdutf/benchmarks/threaded.cpp +0 -123
  462. package/deps/simdutf/cmake/CPM.cmake +0 -1363
  463. package/deps/simdutf/cmake/JoinPaths.cmake +0 -23
  464. package/deps/simdutf/cmake/add_cpp_test.cmake +0 -68
  465. package/deps/simdutf/cmake/simdutf-config.cmake.in +0 -2
  466. package/deps/simdutf/cmake/simdutf-flags.cmake +0 -26
  467. package/deps/simdutf/cmake/toolchains-ci/riscv64-linux-gnu.cmake +0 -4
  468. package/deps/simdutf/cmake/toolchains-dev/README.md +0 -32
  469. package/deps/simdutf/cmake/toolchains-dev/aarch64.cmake +0 -14
  470. package/deps/simdutf/cmake/toolchains-dev/loongarch64.cmake +0 -22
  471. package/deps/simdutf/cmake/toolchains-dev/powerpc64.cmake +0 -16
  472. package/deps/simdutf/cmake/toolchains-dev/powerpc64le.cmake +0 -16
  473. package/deps/simdutf/cmake/toolchains-dev/riscv64.cmake +0 -16
  474. package/deps/simdutf/cmake/toolchains-dev/rvv-spike.cmake +0 -38
  475. package/deps/simdutf/doc/avx512.png +0 -0
  476. package/deps/simdutf/doc/logo.png +0 -0
  477. package/deps/simdutf/doc/logo.svg +0 -165
  478. package/deps/simdutf/doc/node2023.png +0 -0
  479. package/deps/simdutf/doc/shortinput.md +0 -78
  480. package/deps/simdutf/doc/utf16utf8.png +0 -0
  481. package/deps/simdutf/doc/utf8utf16.png +0 -0
  482. package/deps/simdutf/doc/widelogo.png +0 -0
  483. package/deps/simdutf/doxygen.py +0 -50
  484. package/deps/simdutf/fuzz/.clang-format +0 -9
  485. package/deps/simdutf/fuzz/CMakeLists.txt +0 -45
  486. package/deps/simdutf/fuzz/README.md +0 -168
  487. package/deps/simdutf/fuzz/atomic_base64.cpp +0 -448
  488. package/deps/simdutf/fuzz/base64.cpp +0 -278
  489. package/deps/simdutf/fuzz/build.sh +0 -83
  490. package/deps/simdutf/fuzz/conversion.cpp +0 -669
  491. package/deps/simdutf/fuzz/helpers/.clang-format-ignore +0 -1
  492. package/deps/simdutf/fuzz/helpers/common.h +0 -135
  493. package/deps/simdutf/fuzz/helpers/nameof.hpp +0 -1258
  494. package/deps/simdutf/fuzz/main.cpp +0 -72
  495. package/deps/simdutf/fuzz/minimize_and_cleanse.sh +0 -87
  496. package/deps/simdutf/fuzz/misc.cpp +0 -216
  497. package/deps/simdutf/fuzz/random_fuzz.sh +0 -154
  498. package/deps/simdutf/fuzz/roundtrip.cpp +0 -588
  499. package/deps/simdutf/fuzz/safe_conversion.cpp +0 -104
  500. package/deps/simdutf/riscv/Dockerfile +0 -16
  501. package/deps/simdutf/riscv/README.md +0 -24
  502. package/deps/simdutf/riscv/remove-docker-station +0 -8
  503. package/deps/simdutf/riscv/run-docker-station +0 -31
  504. package/deps/simdutf/scripts/.flake8 +0 -2
  505. package/deps/simdutf/scripts/Makefile +0 -2
  506. package/deps/simdutf/scripts/README_ADD_FUNCTION.md +0 -49
  507. package/deps/simdutf/scripts/add_function.py +0 -330
  508. package/deps/simdutf/scripts/amalgamation_tests.py +0 -156
  509. package/deps/simdutf/scripts/base64/Makefile +0 -2
  510. package/deps/simdutf/scripts/base64/README.md +0 -2
  511. package/deps/simdutf/scripts/base64/avx512.py +0 -76
  512. package/deps/simdutf/scripts/base64/neon_decode.py +0 -143
  513. package/deps/simdutf/scripts/base64/neon_generate_lut.py +0 -101
  514. package/deps/simdutf/scripts/base64/sse.py +0 -252
  515. package/deps/simdutf/scripts/base64/sseregular.py +0 -160
  516. package/deps/simdutf/scripts/base64/sseurl.py +0 -283
  517. package/deps/simdutf/scripts/base64/table.py +0 -59
  518. package/deps/simdutf/scripts/base64bench_print.py +0 -145
  519. package/deps/simdutf/scripts/benchmark-all.py +0 -119
  520. package/deps/simdutf/scripts/benchmark_print.py +0 -324
  521. package/deps/simdutf/scripts/check_feature_macros.py +0 -156
  522. package/deps/simdutf/scripts/check_typos.sh +0 -13
  523. package/deps/simdutf/scripts/clang_format.sh +0 -35
  524. package/deps/simdutf/scripts/clang_format_docker.sh +0 -38
  525. package/deps/simdutf/scripts/common.py +0 -24
  526. package/deps/simdutf/scripts/compilation_benchmark.py +0 -55
  527. package/deps/simdutf/scripts/compile_many_variations.sh +0 -64
  528. package/deps/simdutf/scripts/create_latex_table.py +0 -62
  529. package/deps/simdutf/scripts/docker/Dockerfile +0 -14
  530. package/deps/simdutf/scripts/docker/Makefile +0 -9
  531. package/deps/simdutf/scripts/docker/README.md +0 -30
  532. package/deps/simdutf/scripts/docker/llvm.gpg +0 -0
  533. package/deps/simdutf/scripts/ppc64_convert_utf16_to_utf8.py +0 -155
  534. package/deps/simdutf/scripts/prepare_doxygen.sh +0 -21
  535. package/deps/simdutf/scripts/release.py +0 -197
  536. package/deps/simdutf/scripts/shortinputplots.py +0 -97
  537. package/deps/simdutf/scripts/sse_convert_utf16_to_utf8.py +0 -422
  538. package/deps/simdutf/scripts/sse_convert_utf32_to_utf16.py +0 -105
  539. package/deps/simdutf/scripts/sse_utf8_utf16_decode.py +0 -186
  540. package/deps/simdutf/scripts/sse_validate_utf16le_proof.py +0 -137
  541. package/deps/simdutf/scripts/sse_validate_utf16le_testcases.py +0 -129
  542. package/deps/simdutf/scripts/table.py +0 -207
  543. package/deps/simdutf/scripts/tests/new.txt +0 -33
  544. package/deps/simdutf/scripts/tests/old.txt +0 -33
  545. package/deps/simdutf/scripts/tests/results.txt +0 -272
  546. package/deps/simdutf/simdutf.pc.in +0 -11
  547. package/deps/simdutf/singleheader/.flake8 +0 -2
  548. package/deps/simdutf/singleheader/CMakeLists.txt +0 -64
  549. package/deps/simdutf/singleheader/README-dev.md +0 -81
  550. package/deps/simdutf/singleheader/README.md +0 -19
  551. package/deps/simdutf/singleheader/amalgamate.py +0 -513
  552. package/deps/simdutf/singleheader/amalgamation_demo.c +0 -59
  553. package/deps/simdutf/singleheader/amalgamation_demo.cpp +0 -54
  554. package/deps/simdutf/singleheader/test-features.py +0 -262
  555. package/deps/simdutf/src/CMakeLists.txt +0 -78
  556. package/deps/simdutf/tests/CMakeLists.txt +0 -483
  557. package/deps/simdutf/tests/atomic_base64_tests.cpp +0 -2845
  558. package/deps/simdutf/tests/base64_tests.cpp +0 -3617
  559. package/deps/simdutf/tests/basic_fuzzer.cpp +0 -805
  560. package/deps/simdutf/tests/bele_tests.cpp +0 -182
  561. package/deps/simdutf/tests/constexpr_base64_tests.cpp +0 -387
  562. package/deps/simdutf/tests/convert_latin1_to_utf16be_tests.cpp +0 -52
  563. package/deps/simdutf/tests/convert_latin1_to_utf16le_tests.cpp +0 -80
  564. package/deps/simdutf/tests/convert_latin1_to_utf32_tests.cpp +0 -66
  565. package/deps/simdutf/tests/convert_latin1_to_utf8_tests.cpp +0 -120
  566. package/deps/simdutf/tests/convert_utf16_to_utf8_safe_tests.cpp +0 -203
  567. package/deps/simdutf/tests/convert_utf16_to_utf8_with_replacement_tests.cpp +0 -276
  568. package/deps/simdutf/tests/convert_utf16be_to_latin1_tests.cpp +0 -109
  569. package/deps/simdutf/tests/convert_utf16be_to_latin1_tests_with_errors.cpp +0 -136
  570. package/deps/simdutf/tests/convert_utf16be_to_utf32_tests.cpp +0 -193
  571. package/deps/simdutf/tests/convert_utf16be_to_utf32_with_errors_tests.cpp +0 -381
  572. package/deps/simdutf/tests/convert_utf16be_to_utf8_tests.cpp +0 -259
  573. package/deps/simdutf/tests/convert_utf16be_to_utf8_with_errors_tests.cpp +0 -266
  574. package/deps/simdutf/tests/convert_utf16le_to_latin1_tests.cpp +0 -148
  575. package/deps/simdutf/tests/convert_utf16le_to_latin1_tests_with_errors.cpp +0 -176
  576. package/deps/simdutf/tests/convert_utf16le_to_utf32_tests.cpp +0 -213
  577. package/deps/simdutf/tests/convert_utf16le_to_utf32_with_errors_tests.cpp +0 -318
  578. package/deps/simdutf/tests/convert_utf16le_to_utf8_tests.cpp +0 -343
  579. package/deps/simdutf/tests/convert_utf16le_to_utf8_with_errors_tests.cpp +0 -271
  580. package/deps/simdutf/tests/convert_utf32_to_latin1_tests.cpp +0 -111
  581. package/deps/simdutf/tests/convert_utf32_to_latin1_with_errors_tests.cpp +0 -96
  582. package/deps/simdutf/tests/convert_utf32_to_utf16be_tests.cpp +0 -148
  583. package/deps/simdutf/tests/convert_utf32_to_utf16be_with_errors_tests.cpp +0 -192
  584. package/deps/simdutf/tests/convert_utf32_to_utf16le_tests.cpp +0 -166
  585. package/deps/simdutf/tests/convert_utf32_to_utf16le_with_errors_tests.cpp +0 -215
  586. package/deps/simdutf/tests/convert_utf32_to_utf8_tests.cpp +0 -181
  587. package/deps/simdutf/tests/convert_utf32_to_utf8_with_errors_tests.cpp +0 -261
  588. package/deps/simdutf/tests/convert_utf8_to_latin1_tests.cpp +0 -516
  589. package/deps/simdutf/tests/convert_utf8_to_latin1_with_errors_tests.cpp +0 -579
  590. package/deps/simdutf/tests/convert_utf8_to_utf16be_tests.cpp +0 -412
  591. package/deps/simdutf/tests/convert_utf8_to_utf16be_with_errors_tests.cpp +0 -480
  592. package/deps/simdutf/tests/convert_utf8_to_utf16le_tests.cpp +0 -671
  593. package/deps/simdutf/tests/convert_utf8_to_utf16le_with_errors_tests.cpp +0 -455
  594. package/deps/simdutf/tests/convert_utf8_to_utf32_tests.cpp +0 -1204
  595. package/deps/simdutf/tests/convert_utf8_to_utf32_with_errors_tests.cpp +0 -337
  596. package/deps/simdutf/tests/convert_valid_utf16be_to_latin1_tests.cpp +0 -37
  597. package/deps/simdutf/tests/convert_valid_utf16be_to_utf32_tests.cpp +0 -97
  598. package/deps/simdutf/tests/convert_valid_utf16be_to_utf8_tests.cpp +0 -126
  599. package/deps/simdutf/tests/convert_valid_utf16le_to_latin1_tests.cpp +0 -71
  600. package/deps/simdutf/tests/convert_valid_utf16le_to_utf32_tests.cpp +0 -122
  601. package/deps/simdutf/tests/convert_valid_utf16le_to_utf8_tests.cpp +0 -244
  602. package/deps/simdutf/tests/convert_valid_utf32_to_latin1_tests.cpp +0 -49
  603. package/deps/simdutf/tests/convert_valid_utf32_to_utf16be_tests.cpp +0 -92
  604. package/deps/simdutf/tests/convert_valid_utf32_to_utf16le_tests.cpp +0 -114
  605. package/deps/simdutf/tests/convert_valid_utf32_to_utf8_tests.cpp +0 -109
  606. package/deps/simdutf/tests/convert_valid_utf8_to_latin1_tests.cpp +0 -84
  607. package/deps/simdutf/tests/convert_valid_utf8_to_utf16be_tests.cpp +0 -124
  608. package/deps/simdutf/tests/convert_valid_utf8_to_utf16le_tests.cpp +0 -221
  609. package/deps/simdutf/tests/convert_valid_utf8_to_utf32_tests.cpp +0 -155
  610. package/deps/simdutf/tests/count_utf16be.cpp +0 -64
  611. package/deps/simdutf/tests/count_utf16le.cpp +0 -61
  612. package/deps/simdutf/tests/count_utf8.cpp +0 -87
  613. package/deps/simdutf/tests/detect_encodings_tests.cpp +0 -312
  614. package/deps/simdutf/tests/embed/valid_utf8.txt +0 -1
  615. package/deps/simdutf/tests/embed_tests.cpp +0 -22
  616. package/deps/simdutf/tests/find_tests.cpp +0 -77
  617. package/deps/simdutf/tests/fixed_string_tests.cpp +0 -153
  618. package/deps/simdutf/tests/helpers/CMakeLists.txt +0 -25
  619. package/deps/simdutf/tests/helpers/compiletime_conversions.h +0 -222
  620. package/deps/simdutf/tests/helpers/fixed_string.h +0 -267
  621. package/deps/simdutf/tests/helpers/random_int.cpp +0 -30
  622. package/deps/simdutf/tests/helpers/random_int.h +0 -39
  623. package/deps/simdutf/tests/helpers/random_utf16.cpp +0 -123
  624. package/deps/simdutf/tests/helpers/random_utf16.h +0 -52
  625. package/deps/simdutf/tests/helpers/random_utf32.cpp +0 -41
  626. package/deps/simdutf/tests/helpers/random_utf32.h +0 -40
  627. package/deps/simdutf/tests/helpers/random_utf8.cpp +0 -93
  628. package/deps/simdutf/tests/helpers/random_utf8.h +0 -36
  629. package/deps/simdutf/tests/helpers/test.cpp +0 -231
  630. package/deps/simdutf/tests/helpers/test.h +0 -193
  631. package/deps/simdutf/tests/helpers/transcode_test_base.cpp +0 -1257
  632. package/deps/simdutf/tests/helpers/transcode_test_base.h +0 -683
  633. package/deps/simdutf/tests/helpers/utf16.h +0 -27
  634. package/deps/simdutf/tests/installation_tests/find/CMakeLists.txt +0 -43
  635. package/deps/simdutf/tests/installation_tests/from_fetch/CMakeLists.txt +0 -47
  636. package/deps/simdutf/tests/internal_tests.cpp +0 -27
  637. package/deps/simdutf/tests/null_safety_tests.cpp +0 -94
  638. package/deps/simdutf/tests/random_fuzzer.cpp +0 -779
  639. package/deps/simdutf/tests/readme_tests.cpp +0 -274
  640. package/deps/simdutf/tests/reference/CMakeLists.txt +0 -23
  641. package/deps/simdutf/tests/reference/decode_utf16.h +0 -81
  642. package/deps/simdutf/tests/reference/decode_utf32.h +0 -47
  643. package/deps/simdutf/tests/reference/encode_latin1.cpp +0 -1
  644. package/deps/simdutf/tests/reference/encode_latin1.h +0 -32
  645. package/deps/simdutf/tests/reference/encode_utf16.cpp +0 -49
  646. package/deps/simdutf/tests/reference/encode_utf16.h +0 -20
  647. package/deps/simdutf/tests/reference/encode_utf32.cpp +0 -1
  648. package/deps/simdutf/tests/reference/encode_utf32.h +0 -36
  649. package/deps/simdutf/tests/reference/encode_utf8.cpp +0 -1
  650. package/deps/simdutf/tests/reference/encode_utf8.h +0 -40
  651. package/deps/simdutf/tests/reference/validate_utf16.cpp +0 -60
  652. package/deps/simdutf/tests/reference/validate_utf16.h +0 -14
  653. package/deps/simdutf/tests/reference/validate_utf16_to_latin1.cpp +0 -35
  654. package/deps/simdutf/tests/reference/validate_utf16_to_latin1.h +0 -13
  655. package/deps/simdutf/tests/reference/validate_utf32.cpp +0 -27
  656. package/deps/simdutf/tests/reference/validate_utf32.h +0 -12
  657. package/deps/simdutf/tests/reference/validate_utf32_to_latin1.cpp +0 -27
  658. package/deps/simdutf/tests/reference/validate_utf32_to_latin1.h +0 -12
  659. package/deps/simdutf/tests/reference/validate_utf8.cpp +0 -82
  660. package/deps/simdutf/tests/reference/validate_utf8.h +0 -11
  661. package/deps/simdutf/tests/reference/validate_utf8_to_latin1.cpp +0 -43
  662. package/deps/simdutf/tests/reference/validate_utf8_to_latin1.h +0 -12
  663. package/deps/simdutf/tests/select_implementation.cpp +0 -43
  664. package/deps/simdutf/tests/simdutf_c_tests.cpp +0 -244
  665. package/deps/simdutf/tests/span_tests.cpp +0 -401
  666. package/deps/simdutf/tests/special_tests.cpp +0 -559
  667. package/deps/simdutf/tests/straight_c_test.c +0 -187
  668. package/deps/simdutf/tests/text_encoding_tests.cpp +0 -77
  669. package/deps/simdutf/tests/to_well_formed_utf16_tests.cpp +0 -377
  670. package/deps/simdutf/tests/utf8_length_from_utf16_tests.cpp +0 -202
  671. package/deps/simdutf/tests/validate_ascii_basic_tests.cpp +0 -165
  672. package/deps/simdutf/tests/validate_ascii_with_errors_tests.cpp +0 -77
  673. package/deps/simdutf/tests/validate_utf16be_basic_tests.cpp +0 -175
  674. package/deps/simdutf/tests/validate_utf16be_with_errors_tests.cpp +0 -188
  675. package/deps/simdutf/tests/validate_utf16le_basic_tests.cpp +0 -268
  676. package/deps/simdutf/tests/validate_utf16le_with_errors_tests.cpp +0 -274
  677. package/deps/simdutf/tests/validate_utf32_basic_tests.cpp +0 -92
  678. package/deps/simdutf/tests/validate_utf32_with_errors_tests.cpp +0 -114
  679. package/deps/simdutf/tests/validate_utf8_basic_tests.cpp +0 -178
  680. package/deps/simdutf/tests/validate_utf8_brute_force_tests.cpp +0 -88
  681. package/deps/simdutf/tests/validate_utf8_puzzler_tests.cpp +0 -33
  682. package/deps/simdutf/tests/validate_utf8_with_errors_tests.cpp +0 -228
  683. package/deps/simdutf/tools/CMakeLists.txt +0 -85
  684. package/deps/simdutf/tools/fastbase64.cpp +0 -250
  685. package/deps/simdutf/tools/sutf.cpp +0 -556
  686. package/deps/simdutf/tools/sutf.h +0 -40
  687. package/lib/tsconfig.tsbuildinfo +0 -1
@@ -1,1975 +0,0 @@
1
- /*3:*/
2
- #line 197 "libu8u16.w"
3
-
4
-
5
- size_t
6
- u8u16(char**inbuf,size_t*inbytesleft,char**outbuf,size_t*outbytesleft);
7
-
8
- /*:3*//*4:*/
9
- #line 222 "libu8u16.w"
10
-
11
- size_t
12
- buffered_u8u16(char**inbuf,size_t*inbytesleft,char**outbuf,size_t*outbytesleft);
13
-
14
- /*:4*//*5:*/
15
- #line 253 "libu8u16.w"
16
-
17
- #include <stdlib.h>
18
- #include <errno.h>
19
- #include <stdint.h>
20
- #include <string.h>
21
- /*2:*/
22
- #line 175 "libu8u16.w"
23
-
24
- #ifndef U8U16_TARGET
25
- #error "No U8U16_TARGET defined."
26
- #endif
27
-
28
- /*:2*//*75:*/
29
- #line 1694 "libu8u16.w"
30
-
31
- #if (U8U16_TARGET == ALTIVEC_TARGET)
32
- #include "../lib/altivec_simd.h"
33
- #endif
34
-
35
-
36
- /*:75*//*88:*/
37
- #line 2020 "libu8u16.w"
38
-
39
- #if (U8U16_TARGET == SPU_TARGET)
40
- #include "spu_simd.h"
41
- #include "vmx2spu.h"
42
- #endif
43
-
44
-
45
-
46
-
47
- /*:88*//*96:*/
48
- #line 2118 "libu8u16.w"
49
-
50
- #if (U8U16_TARGET == MMX_TARGET)
51
- #include "../lib/mmx_simd.h"
52
- #endif
53
-
54
- /*:96*//*104:*/
55
- #line 2258 "libu8u16.w"
56
-
57
- #if (U8U16_TARGET == SSE_TARGET)
58
- #include "../lib/sse_simd.h"
59
- #endif
60
-
61
-
62
- /*:104*/
63
- #line 258 "libu8u16.w"
64
-
65
- /*8:*/
66
- #line 303 "libu8u16.w"
67
-
68
- typedef SIMD_type BytePack;
69
- typedef SIMD_type BitBlock;
70
-
71
-
72
- /*:8*/
73
- #line 259 "libu8u16.w"
74
-
75
- #define align_ceil(addr) ((addr+PACKSIZE-1) &-PACKSIZE) \
76
-
77
- #define PACKSIZE sizeof(SIMD_type)
78
- #define BLOCKSIZE (sizeof(SIMD_type) *8)
79
- #define s2p_ideal(s0,s1,s2,s3,s4,s5,s6,s7,p0,p1,p2,p3,p4,p5,p6,p7) \
80
- { \
81
- BitBlock bit0123_0,bit0123_1,bit0123_2,bit0123_3, \
82
- bit4567_0,bit4567_1,bit4567_2,bit4567_3; \
83
- BitBlock bit01_0,bit01_1,bit23_0,bit23_1,bit45_0,bit45_1,bit67_0,bit67_1; \
84
- bit0123_0= simd_pack_8_hh(s0,s1) ; \
85
- bit0123_1= simd_pack_8_hh(s2,s3) ; \
86
- bit0123_2= simd_pack_8_hh(s4,s5) ; \
87
- bit0123_3= simd_pack_8_hh(s6,s7) ; \
88
- bit4567_0= simd_pack_8_ll(s0,s1) ; \
89
- bit4567_1= simd_pack_8_ll(s2,s3) ; \
90
- bit4567_2= simd_pack_8_ll(s4,s5) ; \
91
- bit4567_3= simd_pack_8_ll(s6,s7) ; \
92
- bit01_0= simd_pack_4_hh(bit0123_0,bit0123_1) ; \
93
- bit01_1= simd_pack_4_hh(bit0123_2,bit0123_3) ; \
94
- bit23_0= simd_pack_4_ll(bit0123_0,bit0123_1) ; \
95
- bit23_1= simd_pack_4_ll(bit0123_2,bit0123_3) ; \
96
- bit45_0= simd_pack_4_hh(bit4567_0,bit4567_1) ; \
97
- bit45_1= simd_pack_4_hh(bit4567_2,bit4567_3) ; \
98
- bit67_0= simd_pack_4_ll(bit4567_0,bit4567_1) ; \
99
- bit67_1= simd_pack_4_ll(bit4567_2,bit4567_3) ; \
100
- p0= simd_pack_2_hh(bit01_0,bit01_1) ; \
101
- p1= simd_pack_2_ll(bit01_0,bit01_1) ; \
102
- p2= simd_pack_2_hh(bit23_0,bit23_1) ; \
103
- p3= simd_pack_2_ll(bit23_0,bit23_1) ; \
104
- p4= simd_pack_2_hh(bit45_0,bit45_1) ; \
105
- p5= simd_pack_2_ll(bit45_0,bit45_1) ; \
106
- p6= simd_pack_2_hh(bit67_0,bit67_1) ; \
107
- p7= simd_pack_2_ll(bit67_0,bit67_1) ; \
108
- } \
109
-
110
- #define p2s_ideal(p0,p1,p2,p3,p4,p5,p6,p7,s0,s1,s2,s3,s4,s5,s6,s7) \
111
- { \
112
- BitBlock bit01_r0,bit01_r1,bit23_r0,bit23_r1,bit45_r0,bit45_r1,bit67_r0,bit67_r1; \
113
- BitBlock bit0123_r0,bit0123_r1,bit0123_r2,bit0123_r3, \
114
- bit4567_r0,bit4567_r1,bit4567_r2,bit4567_r3; \
115
- bit01_r0= simd_mergeh_1(p0,p1) ; \
116
- bit01_r1= simd_mergel_1(p0,p1) ; \
117
- bit23_r0= simd_mergeh_1(p2,p3) ; \
118
- bit23_r1= simd_mergel_1(p2,p3) ; \
119
- bit45_r0= simd_mergeh_1(p4,p5) ; \
120
- bit45_r1= simd_mergel_1(p4,p5) ; \
121
- bit67_r0= simd_mergeh_1(p6,p7) ; \
122
- bit67_r1= simd_mergel_1(p6,p7) ; \
123
- bit0123_r0= simd_mergeh_2(bit01_r0,bit23_r0) ; \
124
- bit0123_r1= simd_mergel_2(bit01_r0,bit23_r0) ; \
125
- bit0123_r2= simd_mergeh_2(bit01_r1,bit23_r1) ; \
126
- bit0123_r3= simd_mergel_2(bit01_r1,bit23_r1) ; \
127
- bit4567_r0= simd_mergeh_2(bit45_r0,bit67_r0) ; \
128
- bit4567_r1= simd_mergel_2(bit45_r0,bit67_r0) ; \
129
- bit4567_r2= simd_mergeh_2(bit45_r1,bit67_r1) ; \
130
- bit4567_r3= simd_mergel_2(bit45_r1,bit67_r1) ; \
131
- s0= simd_mergeh_4(bit0123_r0,bit4567_r0) ; \
132
- s1= simd_mergel_4(bit0123_r0,bit4567_r0) ; \
133
- s2= simd_mergeh_4(bit0123_r1,bit4567_r1) ; \
134
- s3= simd_mergel_4(bit0123_r1,bit4567_r1) ; \
135
- s4= simd_mergeh_4(bit0123_r2,bit4567_r2) ; \
136
- s5= simd_mergel_4(bit0123_r2,bit4567_r2) ; \
137
- s6= simd_mergeh_4(bit0123_r3,bit4567_r3) ; \
138
- s7= simd_mergel_4(bit0123_r3,bit4567_r3) ; \
139
- } \
140
-
141
- #define p2s_567_ideal(p5,p6,p7,s0,s1,s2,s3,s4,s5,s6,s7) \
142
- { \
143
- BitBlock bit45_r0,bit45_r1,bit67_r0,bit67_r1; \
144
- BitBlock bit4567_r0,bit4567_r1,bit4567_r2,bit4567_r3; \
145
- bit45_r0= simd_mergeh_1(simd_const_8(0) ,p5) ; \
146
- bit45_r1= simd_mergel_1(simd_const_8(0) ,p5) ; \
147
- bit67_r0= simd_mergeh_1(p6,p7) ; \
148
- bit67_r1= simd_mergel_1(p6,p7) ; \
149
- bit4567_r0= simd_mergeh_2(bit45_r0,bit67_r0) ; \
150
- bit4567_r1= simd_mergel_2(bit45_r0,bit67_r0) ; \
151
- bit4567_r2= simd_mergeh_2(bit45_r1,bit67_r1) ; \
152
- bit4567_r3= simd_mergel_2(bit45_r1,bit67_r1) ; \
153
- s0= simd_mergeh_4(simd_const_8(0) ,bit4567_r0) ; \
154
- s1= simd_mergel_4(simd_const_8(0) ,bit4567_r0) ; \
155
- s2= simd_mergeh_4(simd_const_8(0) ,bit4567_r1) ; \
156
- s3= simd_mergel_4(simd_const_8(0) ,bit4567_r1) ; \
157
- s4= simd_mergeh_4(simd_const_8(0) ,bit4567_r2) ; \
158
- s5= simd_mergel_4(simd_const_8(0) ,bit4567_r2) ; \
159
- s6= simd_mergeh_4(simd_const_8(0) ,bit4567_r3) ; \
160
- s7= simd_mergel_4(simd_const_8(0) ,bit4567_r3) ; \
161
- } \
162
-
163
- #define is_prefix_byte(byte) (byte>=0xC0)
164
- #define is_prefix3or4_byte(byte) (byte>=0xE0)
165
- #define is_prefix4_byte(byte) (byte>=0xF0) \
166
-
167
- #define pack_base_addr(addr) ((BytePack*) (((intptr_t) (addr) ) &(-PACKSIZE) ) ) \
168
-
169
- #define align_offset(addr) (((intptr_t) addr) &(PACKSIZE-1) )
170
- #define unaligned_output_step(reg,bytes) \
171
- sisd_store_unaligned(reg,(BytePack*) &U16out[u16advance]) ; \
172
- u16advance+= bytes; \
173
-
174
- #define is_suffix_byte(byte) (byte>=0x80&&byte<=0xBF) \
175
-
176
- #define s2p_step(s0,s1,hi_mask,shift,p0,p1) \
177
- { \
178
- BitBlock t0,t1; \
179
- t0= simd_pack_16_hh(s0,s1) ; \
180
- t1= simd_pack_16_ll(s0,s1) ; \
181
- p0= simd_if(hi_mask,t0,simd_srli_16(t1,shift) ) ; \
182
- p1= simd_if(hi_mask,simd_slli_16(t0,shift) ,t1) ; \
183
- } \
184
-
185
- #define s2p_bytepack(s0,s1,s2,s3,s4,s5,s6,s7,p0,p1,p2,p3,p4,p5,p6,p7) \
186
- {BitBlock bit00224466_0,bit00224466_1,bit00224466_2,bit00224466_3; \
187
- BitBlock bit11335577_0,bit11335577_1,bit11335577_2,bit11335577_3; \
188
- BitBlock bit00004444_0,bit22226666_0,bit00004444_1,bit22226666_1; \
189
- BitBlock bit11115555_0,bit33337777_0,bit11115555_1,bit33337777_1; \
190
- s2p_step(s0,s1,mask_2,1,bit00224466_0,bit11335577_0) \
191
- s2p_step(s2,s3,mask_2,1,bit00224466_1,bit11335577_1) \
192
- s2p_step(s4,s5,mask_2,1,bit00224466_2,bit11335577_2) \
193
- s2p_step(s6,s7,mask_2,1,bit00224466_3,bit11335577_3) \
194
- s2p_step(bit00224466_0,bit00224466_1,mask_4,2,bit00004444_0,bit22226666_0) \
195
- s2p_step(bit00224466_2,bit00224466_3,mask_4,2,bit00004444_1,bit22226666_1) \
196
- s2p_step(bit11335577_0,bit11335577_1,mask_4,2,bit11115555_0,bit33337777_0) \
197
- s2p_step(bit11335577_2,bit11335577_3,mask_4,2,bit11115555_1,bit33337777_1) \
198
- s2p_step(bit00004444_0,bit00004444_1,mask_8,4,p0,p4) \
199
- s2p_step(bit11115555_0,bit11115555_1,mask_8,4,p1,p5) \
200
- s2p_step(bit22226666_0,bit22226666_1,mask_8,4,p2,p6) \
201
- s2p_step(bit33337777_0,bit33337777_1,mask_8,4,p3,p7) \
202
- } \
203
-
204
- #define p2s_step(p0,p1,hi_mask,shift,s0,s1) \
205
- { \
206
- BitBlock t0,t1; \
207
- t0= simd_if(hi_mask,p0,simd_srli_16(p1,shift) ) ; \
208
- t1= simd_if(hi_mask,simd_slli_16(p0,shift) ,p1) ; \
209
- s0= simd_mergeh_8(t0,t1) ; \
210
- s1= simd_mergel_8(t0,t1) ; \
211
- } \
212
-
213
- #define p2s_bytemerge(p0,p1,p2,p3,p4,p5,p6,p7,s0,s1,s2,s3,s4,s5,s6,s7) \
214
- { \
215
- BitBlock bit00004444_0,bit22226666_0,bit00004444_1,bit22226666_1; \
216
- BitBlock bit11115555_0,bit33337777_0,bit11115555_1,bit33337777_1; \
217
- BitBlock bit00224466_0,bit00224466_1,bit00224466_2,bit00224466_3; \
218
- BitBlock bit11335577_0,bit11335577_1,bit11335577_2,bit11335577_3; \
219
- p2s_step(p0,p4,simd_himask_8,4,bit00004444_0,bit00004444_1) \
220
- p2s_step(p1,p5,simd_himask_8,4,bit11115555_0,bit11115555_1) \
221
- p2s_step(p2,p6,simd_himask_8,4,bit22226666_0,bit22226666_1) \
222
- p2s_step(p3,p7,simd_himask_8,4,bit33337777_0,bit33337777_1) \
223
- p2s_step(bit00004444_0,bit22226666_0,simd_himask_4,2,bit00224466_0,bit00224466_1) \
224
- p2s_step(bit11115555_0,bit33337777_0,simd_himask_4,2,bit11335577_0,bit11335577_1) \
225
- p2s_step(bit00004444_1,bit22226666_1,simd_himask_4,2,bit00224466_2,bit00224466_3) \
226
- p2s_step(bit11115555_1,bit33337777_1,simd_himask_4,2,bit11335577_2,bit11335577_3) \
227
- p2s_step(bit00224466_0,bit11335577_0,simd_himask_2,1,s0,s1) \
228
- p2s_step(bit00224466_1,bit11335577_1,simd_himask_2,1,s2,s3) \
229
- p2s_step(bit00224466_2,bit11335577_2,simd_himask_2,1,s4,s5) \
230
- p2s_step(bit00224466_3,bit11335577_3,simd_himask_2,1,s6,s7) \
231
- } \
232
-
233
- #define p2s_halfstep(p1,hi_mask,shift,s0,s1) \
234
- { \
235
- BitBlock t0,t1; \
236
- t0= simd_andc(sisd_srli(p1,shift) ,hi_mask) ; \
237
- t1= simd_andc(p1,hi_mask) ; \
238
- s0= simd_mergeh_8(t0,t1) ; \
239
- s1= simd_mergel_8(t0,t1) ; \
240
- }
241
- #define p2s_567_bytemerge(p5,p6,p7,s0,s1,s2,s3,s4,s5,s6,s7) \
242
- { \
243
- BitBlock bit22226666_0,bit22226666_1; \
244
- BitBlock bit11115555_0,bit33337777_0,bit11115555_1,bit33337777_1; \
245
- BitBlock bit00224466_0,bit00224466_1,bit00224466_2,bit00224466_3; \
246
- BitBlock bit11335577_0,bit11335577_1,bit11335577_2,bit11335577_3; \
247
- p2s_halfstep(p5,simd_himask_8,4,bit11115555_0,bit11115555_1) \
248
- p2s_halfstep(p6,simd_himask_8,4,bit22226666_0,bit22226666_1) \
249
- p2s_halfstep(p7,simd_himask_8,4,bit33337777_0,bit33337777_1) \
250
- p2s_halfstep(bit22226666_0,simd_himask_4,2,bit00224466_0,bit00224466_1) \
251
- p2s_step(bit11115555_0,bit33337777_0,simd_himask_4,2,bit11335577_0,bit11335577_1) \
252
- p2s_halfstep(bit22226666_1,simd_himask_4,2,bit00224466_2,bit00224466_3) \
253
- p2s_step(bit11115555_1,bit33337777_1,simd_himask_4,2,bit11335577_2,bit11335577_3) \
254
- p2s_step(bit00224466_0,bit11335577_0,simd_himask_2,1,s0,s1) \
255
- p2s_step(bit00224466_1,bit11335577_1,simd_himask_2,1,s2,s3) \
256
- p2s_step(bit00224466_2,bit11335577_2,simd_himask_2,1,s4,s5) \
257
- p2s_step(bit00224466_3,bit11335577_3,simd_himask_2,1,s6,s7) \
258
- } \
259
-
260
- #define min(x,y) ((x) <(y) ?(x) :(y) ) \
261
-
262
- #define unpack_packed_permutation(packed,high_perm,low_perm) \
263
- { \
264
- BitBlock even_perms= simd_srli_8(packed,4) ; \
265
- BitBlock odd_perms= simd_andc(packed,simd_himask_8) ; \
266
- high_perm= simd_mergeh_8(even_perms,odd_perms) ; \
267
- low_perm= simd_mergel_8(even_perms,odd_perms) ; \
268
- } \
269
-
270
- #define output_step(vec,vec_num) \
271
- { \
272
- BitBlock rshift,lshift; \
273
- rshift= vec_lvsr(u16advance,U16out) ; \
274
- vec_stl(simd_permute(pending,vec,rshift) ,u16advance,U16out) ; \
275
- lshift= simd_add_8(vec_0__15,vec_splat(u16_bytes_8,vec_num) ) ; \
276
- pending= simd_permute(pending,vec,lshift) ; \
277
- u16advance+= dbyte_count[vec_num]; \
278
- } \
279
- \
280
-
281
- #define do_right4_shifts(vec,rshift1,rshift2) \
282
- {BitBlock s2; \
283
- vec= simd_sub_8(vec,sisd_srli(simd_and(rshift1,vec) ,1) ) ; \
284
- s2= simd_and(rshift2,vec) ; \
285
- vec= simd_or(sisd_srli(s2,2) ,simd_xor(vec,s2) ) ; \
286
- }
287
- #define do_right8_shifts(vec,rshift1,rshift2,rshift4) \
288
- {BitBlock s2; \
289
- vec= simd_sub_8(vec,simd_srli_16(simd_and(rshift1,vec) ,1) ) ; \
290
- s2= simd_and(rshift2,vec) ; \
291
- vec= simd_or(simd_srli_16(s2,2) ,simd_xor(vec,s2) ) ; \
292
- s2= simd_and(rshift4,vec) ; \
293
- vec= simd_or(simd_srli_16(s2,4) ,simd_xor(vec,s2) ) ; \
294
- }
295
-
296
- #line 260 "libu8u16.w"
297
-
298
- /*16:*/
299
- #line 387 "libu8u16.w"
300
-
301
- #if BYTE_ORDER == BIG_ENDIAN
302
- #define sisd_sfl(blk, n) sisd_srl(blk, n)
303
- #define sisd_sbl(blk, n) sisd_sll(blk, n)
304
- #define sisd_sfli(blk, n) sisd_srli(blk, n)
305
- #define sisd_sbli(blk, n) sisd_slli(blk, n)
306
- #endif
307
- #if BYTE_ORDER == LITTLE_ENDIAN
308
- #define sisd_sfl(blk, n) sisd_sll(blk, n)
309
- #define sisd_sbl(blk, n) sisd_srl(blk, n)
310
- #define sisd_sfli(blk, n) sisd_slli(blk, n)
311
- #define sisd_sbli(blk, n) sisd_srli(blk, n)
312
- #endif
313
-
314
- #define bitblock_sfl(blk, n) sisd_sfl(blk, n)
315
- #define bitblock_sbl(blk, n) sisd_sbl(blk, n)
316
- #define bitblock_sfli(blk, n) sisd_sfli(blk, n)
317
- #define bitblock_sbli(blk, n) sisd_sbli(blk, n)
318
-
319
- /*:16*//*17:*/
320
- #line 414 "libu8u16.w"
321
-
322
- #if BYTE_ORDER == BIG_ENDIAN
323
- #ifdef UTF16_LE
324
- #define u16_merge0(a, b) simd_mergeh_8(b, a)
325
- #define u16_merge1(a, b) simd_mergel_8(b, a)
326
- #endif
327
- #ifndef UTF16_LE
328
- #define u16_merge0(a, b) simd_mergeh_8(a, b)
329
- #define u16_merge1(a, b) simd_mergel_8(a, b)
330
- #endif
331
- #endif
332
-
333
- #if BYTE_ORDER == LITTLE_ENDIAN
334
- #ifdef UTF16_LE
335
- #define u16_merge0(a, b) simd_mergel_8(a, b)
336
- #define u16_merge1(a, b) simd_mergeh_8(a, b)
337
- #endif
338
- #ifndef UTF16_LE
339
- #define u16_merge0(a, b) simd_mergel_8(b, a)
340
- #define u16_merge1(a, b) simd_mergeh_8(b, a)
341
- #endif
342
- #endif
343
-
344
- /*:17*/
345
- #line 261 "libu8u16.w"
346
-
347
- size_t
348
- u8u16(char**inbuf,size_t*inbytesleft,char**outbuf,size_t*outbytesleft){
349
- /*9:*/
350
- #line 313 "libu8u16.w"
351
-
352
- BytePack U8s0,U8s1,U8s2,U8s3,U8s4,U8s5,U8s6,U8s7;
353
- BitBlock u8bit0,u8bit1,u8bit2,u8bit3,u8bit4,u8bit5,u8bit6,u8bit7;
354
-
355
- /*:9*//*10:*/
356
- #line 332 "libu8u16.w"
357
-
358
- BitBlock u16hi0,u16hi1,u16hi2,u16hi3,u16hi4,u16hi5,u16hi6,u16hi7;
359
- BitBlock u16lo0,u16lo1,u16lo2,u16lo3,u16lo4,u16lo5,u16lo6,u16lo7;
360
- BytePack U16h0,U16h1,U16h2,U16h3,U16h4,U16h5,U16h6,U16h7;
361
- BytePack U16l0,U16l1,U16l2,U16l3,U16l4,U16l5,U16l6,U16l7;
362
- BytePack U16s0,U16s1,U16s2,U16s3,U16s4,U16s5,U16s6,U16s7,
363
- U16s8,U16s9,U16s10,U16s11,U16s12,U16s13,U16s14,U16s15;
364
-
365
- /*:10*//*12:*/
366
- #line 354 "libu8u16.w"
367
-
368
- BitBlock input_select_mask;
369
-
370
- /*:12*//*13:*/
371
- #line 365 "libu8u16.w"
372
-
373
- BitBlock error_mask;
374
-
375
- /*:13*//*14:*/
376
- #line 373 "libu8u16.w"
377
-
378
- BitBlock delmask;
379
-
380
- /*:14*//*25:*/
381
- #line 699 "libu8u16.w"
382
-
383
- intptr_t u8advance,u16advance;
384
-
385
- /*:25*//*37:*/
386
- #line 1003 "libu8u16.w"
387
-
388
- BitBlock u8unibyte,u8prefix,u8suffix,u8prefix2,u8prefix3or4,u8prefix3,u8prefix4;
389
-
390
- /*:37*//*42:*/
391
- #line 1046 "libu8u16.w"
392
-
393
- BitBlock u8scope22,u8scope32,u8scope33,u8scope42,u8scope43,u8scope44;
394
- BitBlock u8lastsuffix,u8lastbyte,u8surrogate;
395
-
396
- /*:42*//*46:*/
397
- #line 1097 "libu8u16.w"
398
-
399
- BitBlock suffix_required_scope;
400
-
401
- /*:46*//*59:*/
402
- #line 1330 "libu8u16.w"
403
-
404
- #ifdef __GNUC__
405
- unsigned char u16_bytes_per_reg[16]__attribute__((aligned(16)));
406
- #endif
407
- #ifdef _MSC_VER
408
- __declspec(align(16))unsigned char u16_bytes_per_reg[16];
409
- #endif
410
- #if ((DOUBLEBYTE_DELETION == FROM_LEFT8) || (BIT_DELETION == ROTATION_TO_LEFT8))
411
- BitBlock delcounts_2,delcounts_4,delcounts_8;
412
- #endif
413
- #if (BIT_DELETION == ROTATION_TO_LEFT8)
414
- BitBlock rotl_2,rotl_4,sll_8;
415
- #endif
416
-
417
- /*:59*//*80:*/
418
- #line 1889 "libu8u16.w"
419
-
420
- #if ((U8U16_TARGET == ALTIVEC_TARGET) || (U8U16_TARGET == SPU_TARGET))
421
- BitBlock bits_per_nybble_tbl=
422
- (BitBlock){0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4};
423
- #endif
424
- #if (BYTE_DELETION == BYTE_DEL_BY_PERMUTE_TO_LEFT8)
425
- BitBlock packed_identity=
426
- (BitBlock){0x01,0x23,0x45,0x67,0x89,0xAB,0xCD,0xEF,
427
- 0x01,0x23,0x45,0x67,0x89,0xAB,0xCD,0xEF};
428
- BitBlock del2_4_shift_tbl=
429
- (BitBlock){0,0,4,4,0x40,0x40,0x44,0x44,0,0,4,4,0x40,0x40,0x44,0x44};
430
- BitBlock del4_8_rshift_tbl=
431
- (BitBlock){0,0xFC,0xFC,0xF8,0,0xFC,0xFC,0xF8,
432
- 0,0xFC,0xFC,0xF8,0,0xFC,0xFC,0xF8};
433
- BitBlock del4_8_lshift_tbl=
434
- (BitBlock){0,0,0,0,4,4,4,4,4,4,4,4,8,8,8,8};
435
- BitBlock del8_shift_tbl=
436
- (BitBlock){0,4,4,8,4,8,8,12,4,8,8,12,8,12,12,16};
437
- BitBlock l8perm0,l8perm1,l8perm2,l8perm3;
438
- #endif
439
- #if ((BIT_DELETION != ROTATION_TO_LEFT8) && (DOUBLEBYTE_DELETION == ALTIVEC_FROM_LEFT8))
440
- BitBlock delcounts_8,u16_bytes_8;
441
- #endif
442
-
443
- /*:80*//*86:*/
444
- #line 2009 "libu8u16.w"
445
-
446
- #if ((U8U16_TARGET == ALTIVEC_TARGET) || (U8U16_TARGET == SPU_TARGET))
447
- BitBlock start_of_output_existing= vec_ld(0,(vector unsigned char*)*outbuf);
448
- BitBlock pending= simd_permute(start_of_output_existing,
449
- start_of_output_existing,
450
- vec_lvsl(0,(unsigned char*)*outbuf));
451
- #endif
452
-
453
-
454
- /*:86*//*91:*/
455
- #line 2053 "libu8u16.w"
456
-
457
- #if (BIT_DELETION == SHIFT_TO_RIGHT4)
458
- BitBlock del4_rshift1,del4_trans2,del4_rshift2;
459
- #endif
460
-
461
- /*:91*//*94:*/
462
- #line 2093 "libu8u16.w"
463
-
464
- #if (DOUBLEBYTE_DELETION == FROM_LEFT4)
465
- BitBlock delcounts_2,delcounts_4,u16_bytes_4;
466
- #endif
467
-
468
- /*:94*//*100:*/
469
- #line 2166 "libu8u16.w"
470
-
471
- #if ((BIT_DELETION == SHIFT_TO_RIGHT8) || (BIT_DELETION == PERMUTE_INDEX_TO_RIGHT8))
472
- BitBlock del8_rshift1,del8_trans2,del8_rshift2,del8_trans4,del8_rshift4;
473
- #endif
474
-
475
- /*:100*/
476
- #line 264 "libu8u16.w"
477
-
478
- if(inbuf&&*inbuf&&outbuf&&*outbuf){
479
- if(/*6:*/
480
- #line 285 "libu8u16.w"
481
-
482
- (intptr_t)*outbuf+*outbytesleft> align_ceil((intptr_t)*outbuf+2*(*inbytesleft))
483
-
484
-
485
-
486
- /*:6*/
487
- #line 266 "libu8u16.w"
488
- )
489
- /*24:*/
490
- #line 669 "libu8u16.w"
491
-
492
- {
493
- unsigned char*U8data= (unsigned char*)*inbuf;
494
- unsigned char*U16out= (unsigned char*)*outbuf;
495
- size_t inbytes= *inbytesleft;
496
- while(inbytes> 0){
497
- /*36:*/
498
- #line 921 "libu8u16.w"
499
-
500
- #ifndef NO_ASCII_OPTIMIZATION
501
- BitBlock vec_0= simd_const_8(0);
502
- if(inbytes> PACKSIZE){
503
- U8s0= sisd_load_unaligned((BytePack*)U8data);
504
- if(!simd_any_sign_bit_8(U8s0)){
505
- intptr_t fill_to_align= PACKSIZE-align_offset(U16out);
506
- U16s0= u16_merge0(vec_0,U8s0);
507
- sisd_store_unaligned(U16s0,(BytePack*)U16out);
508
- u8advance= fill_to_align/2;
509
- u16advance= fill_to_align;
510
- /*26:*/
511
- #line 704 "libu8u16.w"
512
-
513
- inbytes-= u8advance;
514
- U8data+= u8advance;
515
- U16out+= u16advance;
516
-
517
- /*:26*/
518
- #line 932 "libu8u16.w"
519
-
520
- while(inbytes> 4*PACKSIZE){
521
- BytePack*U8pack= (BytePack*)U8data;
522
- BytePack*U16pack= (BytePack*)U16out;
523
- U8s0= sisd_load_unaligned(U8pack);
524
- U8s1= sisd_load_unaligned(&U8pack[1]);
525
- U8s2= sisd_load_unaligned(&U8pack[2]);
526
- U8s3= sisd_load_unaligned(&U8pack[3]);
527
- if(simd_any_sign_bit_8(simd_or(simd_or(U8s0,U8s1),simd_or(U8s2,U8s3))))break;
528
- sisd_store_aligned(u16_merge0(vec_0,U8s0),U16pack);
529
- sisd_store_aligned(u16_merge1(vec_0,U8s0),&U16pack[1]);
530
- sisd_store_aligned(u16_merge0(vec_0,U8s1),&U16pack[2]);
531
- sisd_store_aligned(u16_merge1(vec_0,U8s1),&U16pack[3]);
532
- sisd_store_aligned(u16_merge0(vec_0,U8s2),&U16pack[4]);
533
- sisd_store_aligned(u16_merge1(vec_0,U8s2),&U16pack[5]);
534
- sisd_store_aligned(u16_merge0(vec_0,U8s3),&U16pack[6]);
535
- sisd_store_aligned(u16_merge1(vec_0,U8s3),&U16pack[7]);
536
- u8advance= 4*PACKSIZE;
537
- u16advance= 8*PACKSIZE;
538
- /*26:*/
539
- #line 704 "libu8u16.w"
540
-
541
- inbytes-= u8advance;
542
- U8data+= u8advance;
543
- U16out+= u16advance;
544
-
545
- /*:26*/
546
- #line 951 "libu8u16.w"
547
-
548
- }
549
- while(inbytes> PACKSIZE){
550
- BytePack*U16pack= (BytePack*)U16out;
551
- U8s0= sisd_load_unaligned((BytePack*)U8data);
552
- if(simd_any_sign_bit_8(U8s0))break;
553
- sisd_store_aligned(u16_merge0(vec_0,U8s0),U16pack);
554
- sisd_store_aligned(u16_merge1(vec_0,U8s0),&U16pack[1]);
555
- u8advance= PACKSIZE;
556
- u16advance= 2*PACKSIZE;
557
- /*26:*/
558
- #line 704 "libu8u16.w"
559
-
560
- inbytes-= u8advance;
561
- U8data+= u8advance;
562
- U16out+= u16advance;
563
-
564
- /*:26*/
565
- #line 961 "libu8u16.w"
566
-
567
- }
568
- }
569
- }
570
- if(inbytes<=PACKSIZE){
571
- intptr_t U8data_offset= ((intptr_t)U8data)&(PACKSIZE-1);
572
- if(U8data_offset+inbytes<=PACKSIZE){
573
-
574
- U8s0= sisd_sbl(sisd_load_aligned((BytePack*)pack_base_addr((intptr_t)U8data)),
575
- sisd_from_int(8*U8data_offset));
576
- }
577
- else U8s0= sisd_load_unaligned((BytePack*)U8data);
578
- U8s0= simd_and(U8s0,sisd_sbl(simd_const_8(-1),
579
- sisd_from_int(8*(PACKSIZE-inbytes))));
580
- if(!simd_any_sign_bit_8(U8s0)){
581
- sisd_store_unaligned(u16_merge0(vec_0,U8s0),(BytePack*)U16out);
582
- if(inbytes> PACKSIZE/2)
583
- sisd_store_unaligned(u16_merge1(vec_0,U8s0),(BytePack*)&U16out[PACKSIZE]);
584
- u8advance= inbytes;
585
- u16advance= 2*inbytes;
586
- /*26:*/
587
- #line 704 "libu8u16.w"
588
-
589
- inbytes-= u8advance;
590
- U8data+= u8advance;
591
- U16out+= u16advance;
592
-
593
- /*:26*/
594
- #line 981 "libu8u16.w"
595
-
596
- /*29:*/
597
- #line 763 "libu8u16.w"
598
-
599
- *outbytesleft-= (intptr_t)U16out-(intptr_t)*outbuf;
600
- *inbuf= (char*)U8data;
601
- *inbytesleft= inbytes;
602
- *outbuf= (char*)U16out;
603
- /*97:*/
604
- #line 2123 "libu8u16.w"
605
-
606
- #if (U8U16_TARGET == MMX_TARGET)
607
- _mm_empty();
608
- #endif
609
-
610
- /*:97*/
611
- #line 768 "libu8u16.w"
612
- ;
613
- if(inbytes==0)return(size_t)0;
614
- else return(size_t)-1;
615
-
616
-
617
- /*:29*/
618
- #line 982 "libu8u16.w"
619
-
620
- }
621
- }
622
- #endif
623
-
624
-
625
-
626
- /*:36*//*78:*/
627
- #line 1763 "libu8u16.w"
628
-
629
- #if ((U8U16_TARGET == ALTIVEC_TARGET) || (U8U16_TARGET == SPU_TARGET))
630
- BitBlock vec_0= simd_const_8(0);
631
- if(inbytes> PACKSIZE){
632
- BitBlock r0,r1,r2,r3,r4;
633
- BitBlock input_shiftl= vec_lvsl(0,U8data);
634
- U8s0= simd_permute(vec_ld(0,U8data),vec_ld(15,U8data),input_shiftl);
635
- if(!simd_any_sign_bit_8(U8s0)){
636
- int fill_to_align= PACKSIZE-align_offset(U16out);
637
- U16s0= u16_merge0(vec_0,U8s0);
638
- pending= simd_permute(pending,U16s0,vec_lvsr(0,U16out));
639
- vec_st(pending,0,U16out);
640
- u8advance= fill_to_align/2;
641
- u16advance= fill_to_align;
642
- /*26:*/
643
- #line 704 "libu8u16.w"
644
-
645
- inbytes-= u8advance;
646
- U8data+= u8advance;
647
- U16out+= u16advance;
648
-
649
- /*:26*/
650
- #line 1777 "libu8u16.w"
651
-
652
- input_shiftl= vec_lvsl(0,U8data);
653
- r0= vec_ld(0,U8data);
654
- while(inbytes> 4*PACKSIZE){
655
- BytePack*U16pack= (BytePack*)U16out;
656
- r1= vec_ld(16,U8data);
657
- r2= vec_ld(32,U8data);
658
- U8s0= simd_permute(r0,r1,input_shiftl);
659
- r3= vec_ld(48,U8data);
660
- U8s1= simd_permute(r1,r2,input_shiftl);
661
- r4= vec_ld(64,U8data);
662
- U8s2= simd_permute(r2,r3,input_shiftl);
663
- U8s3= simd_permute(r3,r4,input_shiftl);
664
- if(simd_any_sign_bit_8(simd_or(simd_or(U8s0,U8s1),simd_or(U8s2,U8s3))))break;
665
- sisd_store_aligned(u16_merge0(vec_0,U8s0),U16pack);
666
- sisd_store_aligned(u16_merge1(vec_0,U8s0),&U16pack[1]);
667
- sisd_store_aligned(u16_merge0(vec_0,U8s1),&U16pack[2]);
668
- sisd_store_aligned(u16_merge1(vec_0,U8s1),&U16pack[3]);
669
- sisd_store_aligned(u16_merge0(vec_0,U8s2),&U16pack[4]);
670
- sisd_store_aligned(u16_merge1(vec_0,U8s2),&U16pack[5]);
671
- sisd_store_aligned(u16_merge0(vec_0,U8s3),&U16pack[6]);
672
- pending= u16_merge1(vec_0,U8s3);
673
- sisd_store_aligned(pending,&U16pack[7]);
674
- u8advance= 4*PACKSIZE;
675
- u16advance= 8*PACKSIZE;
676
- /*26:*/
677
- #line 704 "libu8u16.w"
678
-
679
- inbytes-= u8advance;
680
- U8data+= u8advance;
681
- U16out+= u16advance;
682
-
683
- /*:26*/
684
- #line 1802 "libu8u16.w"
685
-
686
- r0= r4;
687
- }
688
- while(inbytes> PACKSIZE){
689
- BytePack*U16pack= (BytePack*)U16out;
690
- r1= vec_ld(16,U8data);
691
- U8s0= simd_permute(r0,r1,input_shiftl);
692
- if(simd_any_sign_bit_8(U8s0))break;
693
- sisd_store_aligned(u16_merge0(vec_0,U8s0),U16pack);
694
- pending= u16_merge1(vec_0,U8s0);
695
- sisd_store_aligned(pending,&U16pack[1]);
696
- u8advance= PACKSIZE;
697
- u16advance= 2*PACKSIZE;
698
- /*26:*/
699
- #line 704 "libu8u16.w"
700
-
701
- inbytes-= u8advance;
702
- U8data+= u8advance;
703
- U16out+= u16advance;
704
-
705
- /*:26*/
706
- #line 1815 "libu8u16.w"
707
-
708
- r0= r1;
709
- }
710
- }
711
- }
712
- #endif
713
-
714
-
715
- /*:78*/
716
- #line 675 "libu8u16.w"
717
- ;
718
- /*31:*/
719
- #line 776 "libu8u16.w"
720
-
721
- if(inbytes<BLOCKSIZE){
722
- input_select_mask= sisd_sbl(simd_const_8(-1),sisd_from_int(BLOCKSIZE-inbytes));
723
- /*35:*/
724
- #line 839 "libu8u16.w"
725
-
726
- #ifdef INBUF_READ_NONALIGNED
727
- {
728
- BytePack*U8pack= (BytePack*)U8data;
729
- size_t full_packs= inbytes/PACKSIZE;
730
- size_t excess_bytes= inbytes%PACKSIZE;
731
- intptr_t U8data_offset= ((intptr_t)U8data)%PACKSIZE;
732
- BytePack partial_pack;
733
- if(excess_bytes==0)partial_pack= simd_const_8(0);
734
- else if(U8data_offset+excess_bytes> PACKSIZE)
735
-
736
- partial_pack= sisd_load_unaligned(&U8pack[full_packs]);
737
- else{
738
-
739
- partial_pack= sisd_load_aligned(pack_base_addr(&U8pack[full_packs]));
740
- partial_pack= sisd_sbl(partial_pack,sisd_from_int(8*U8data_offset));
741
- }
742
- switch(full_packs){
743
- case 0:U8s0= partial_pack;break;
744
- case 1:U8s0= sisd_load_unaligned(&U8pack[0]);
745
- U8s1= partial_pack;
746
- break;
747
- case 2:U8s0= sisd_load_unaligned(&U8pack[0]);
748
- U8s1= sisd_load_unaligned(&U8pack[1]);
749
- U8s2= partial_pack;
750
- break;
751
- case 3:U8s0= sisd_load_unaligned(&U8pack[0]);
752
- U8s1= sisd_load_unaligned(&U8pack[1]);
753
- U8s2= sisd_load_unaligned(&U8pack[2]);
754
- U8s3= partial_pack;
755
- break;
756
- case 4:U8s0= sisd_load_unaligned(&U8pack[0]);
757
- U8s1= sisd_load_unaligned(&U8pack[1]);
758
- U8s2= sisd_load_unaligned(&U8pack[2]);
759
- U8s3= sisd_load_unaligned(&U8pack[3]);
760
- U8s4= partial_pack;
761
- break;
762
- case 5:U8s0= sisd_load_unaligned(&U8pack[0]);
763
- U8s1= sisd_load_unaligned(&U8pack[1]);
764
- U8s2= sisd_load_unaligned(&U8pack[2]);
765
- U8s3= sisd_load_unaligned(&U8pack[3]);
766
- U8s4= sisd_load_unaligned(&U8pack[4]);
767
- U8s5= partial_pack;
768
- break;
769
- case 6:U8s0= sisd_load_unaligned(&U8pack[0]);
770
- U8s1= sisd_load_unaligned(&U8pack[1]);
771
- U8s2= sisd_load_unaligned(&U8pack[2]);
772
- U8s3= sisd_load_unaligned(&U8pack[3]);
773
- U8s4= sisd_load_unaligned(&U8pack[4]);
774
- U8s5= sisd_load_unaligned(&U8pack[5]);
775
- U8s6= partial_pack;
776
- break;
777
- case 7:U8s0= sisd_load_unaligned(&U8pack[0]);
778
- U8s1= sisd_load_unaligned(&U8pack[1]);
779
- U8s2= sisd_load_unaligned(&U8pack[2]);
780
- U8s3= sisd_load_unaligned(&U8pack[3]);
781
- U8s4= sisd_load_unaligned(&U8pack[4]);
782
- U8s5= sisd_load_unaligned(&U8pack[5]);
783
- U8s6= sisd_load_unaligned(&U8pack[6]);
784
- U8s7= partial_pack;
785
- break;
786
- }
787
- input_select_mask= sisd_sbl(simd_const_8(-1),sisd_from_int(BLOCKSIZE-inbytes));
788
- u8advance= inbytes;
789
- }
790
- #endif
791
-
792
-
793
-
794
- /*:35*//*77:*/
795
- #line 1735 "libu8u16.w"
796
-
797
- #if ((U8U16_TARGET == ALTIVEC_TARGET) || (U8U16_TARGET == SPU_TARGET))
798
- {
799
- BitBlock r0,r1,r2,r3,r4,r5,r6,r7,r8;
800
- BitBlock input_shiftl= vec_lvsl(0,U8data);
801
- int last_byte= inbytes-1;
802
- r0= vec_ld(0,U8data);
803
- r1= vec_ld(min(16,last_byte),U8data);
804
- r2= vec_ld(min(32,last_byte),U8data);
805
- U8s0= simd_permute(r0,r1,input_shiftl);
806
- r3= vec_ld(min(48,last_byte),U8data);
807
- U8s1= simd_permute(r1,r2,input_shiftl);
808
- r4= vec_ld(min(64,last_byte),U8data);
809
- U8s2= simd_permute(r2,r3,input_shiftl);
810
- r5= vec_ld(min(80,last_byte),U8data);
811
- U8s3= simd_permute(r3,r4,input_shiftl);
812
- r6= vec_ld(min(96,last_byte),U8data);
813
- U8s4= simd_permute(r4,r5,input_shiftl);
814
- r7= vec_ld(min(112,last_byte),U8data);
815
- U8s5= simd_permute(r5,r6,input_shiftl);
816
- r8= vec_ld(min(127,last_byte),U8data);
817
- U8s6= simd_permute(r6,r7,input_shiftl);
818
- U8s7= simd_permute(r7,r8,input_shiftl);
819
- u8advance= inbytes;
820
- }
821
- #endif
822
-
823
- /*:77*/
824
- #line 779 "libu8u16.w"
825
-
826
- }
827
- else{
828
- input_select_mask= simd_const_8(-1);
829
- /*32:*/
830
- #line 790 "libu8u16.w"
831
-
832
- #ifdef INBUF_READ_NONALIGNED
833
- {
834
- BytePack*U8pack= (BytePack*)U8data;
835
- U8s0= sisd_load_unaligned(&U8pack[0]);
836
- U8s1= sisd_load_unaligned(&U8pack[1]);
837
- U8s2= sisd_load_unaligned(&U8pack[2]);
838
- U8s3= sisd_load_unaligned(&U8pack[3]);
839
- U8s4= sisd_load_unaligned(&U8pack[4]);
840
- U8s5= sisd_load_unaligned(&U8pack[5]);
841
- U8s6= sisd_load_unaligned(&U8pack[6]);
842
- U8s7= sisd_load_unaligned(&U8pack[7]);
843
- u8advance= BLOCKSIZE;
844
- /*33:*/
845
- #line 822 "libu8u16.w"
846
-
847
- u8advance-= is_prefix_byte(U8data[u8advance-1])
848
- +2*is_prefix3or4_byte(U8data[u8advance-2])
849
- +3*is_prefix4_byte(U8data[u8advance-3]);
850
-
851
-
852
-
853
- /*:33*/
854
- #line 803 "libu8u16.w"
855
-
856
- }
857
- #endif
858
-
859
- /*:32*//*76:*/
860
- #line 1700 "libu8u16.w"
861
-
862
- #if ((U8U16_TARGET == ALTIVEC_TARGET) || (U8U16_TARGET == SPU_TARGET))
863
- {
864
- BitBlock r0,r1,r2,r3,r4,r5,r6,r7,r8;
865
- BitBlock input_shiftl= vec_lvsl(0,U8data);
866
- r0= vec_ld(0,U8data);
867
- r1= vec_ld(16,U8data);
868
- r2= vec_ld(32,U8data);
869
- U8s0= simd_permute(r0,r1,input_shiftl);
870
- r3= vec_ld(48,U8data);
871
- U8s1= simd_permute(r1,r2,input_shiftl);
872
- r4= vec_ld(64,U8data);
873
- U8s2= simd_permute(r2,r3,input_shiftl);
874
- r5= vec_ld(80,U8data);
875
- U8s3= simd_permute(r3,r4,input_shiftl);
876
- r6= vec_ld(96,U8data);
877
- U8s4= simd_permute(r4,r5,input_shiftl);
878
- r7= vec_ld(112,U8data);
879
- U8s5= simd_permute(r5,r6,input_shiftl);
880
-
881
- r8= vec_ld(127,U8data);
882
- U8s6= simd_permute(r6,r7,input_shiftl);
883
- U8s7= simd_permute(r7,r8,input_shiftl);
884
- u8advance= BLOCKSIZE;
885
- /*33:*/
886
- #line 822 "libu8u16.w"
887
-
888
- u8advance-= is_prefix_byte(U8data[u8advance-1])
889
- +2*is_prefix3or4_byte(U8data[u8advance-2])
890
- +3*is_prefix4_byte(U8data[u8advance-3]);
891
-
892
-
893
-
894
- /*:33*/
895
- #line 1724 "libu8u16.w"
896
-
897
- }
898
- #endif
899
-
900
-
901
- /*:76*/
902
- #line 783 "libu8u16.w"
903
-
904
- }
905
-
906
-
907
- /*:31*/
908
- #line 676 "libu8u16.w"
909
-
910
- /*19:*/
911
- #line 510 "libu8u16.w"
912
-
913
- #if (S2P_ALGORITHM == S2P_IDEAL)
914
- #if (BYTE_ORDER == BIG_ENDIAN)
915
- s2p_ideal(U8s0,U8s1,U8s2,U8s3,U8s4,U8s5,U8s6,U8s7,
916
- u8bit0,u8bit1,u8bit2,u8bit3,u8bit4,u8bit5,u8bit6,u8bit7)
917
- #endif
918
- #if (BYTE_ORDER == LITTLE_ENDIAN)
919
- s2p_ideal(U8s7,U8s6,U8s5,U8s4,U8s3,U8s2,U8s1,U8s0,
920
- u8bit0,u8bit1,u8bit2,u8bit3,u8bit4,u8bit5,u8bit6,u8bit7)
921
- #endif
922
- #endif
923
-
924
- /*:19*//*70:*/
925
- #line 1572 "libu8u16.w"
926
-
927
- #if (S2P_ALGORITHM == S2P_BYTEPACK)
928
- {
929
- BitBlock mask_2= simd_himask_2;
930
- BitBlock mask_4= simd_himask_4;
931
- BitBlock mask_8= simd_himask_8;
932
- #if (BYTE_ORDER == BIG_ENDIAN)
933
- s2p_bytepack(U8s0,U8s1,U8s2,U8s3,U8s4,U8s5,U8s6,U8s7,
934
- u8bit0,u8bit1,u8bit2,u8bit3,u8bit4,u8bit5,u8bit6,u8bit7)
935
- #endif
936
- #if (BYTE_ORDER == LITTLE_ENDIAN)
937
- s2p_bytepack(U8s7,U8s6,U8s5,U8s4,U8s3,U8s2,U8s1,U8s0,
938
- u8bit0,u8bit1,u8bit2,u8bit3,u8bit4,u8bit5,u8bit6,u8bit7)
939
- #endif
940
- }
941
- #endif
942
-
943
-
944
- /*:70*/
945
- #line 677 "libu8u16.w"
946
-
947
- /*28:*/
948
- #line 726 "libu8u16.w"
949
-
950
- /*38:*/
951
- #line 1011 "libu8u16.w"
952
-
953
- {
954
- BitBlock bit0_selected= simd_and(input_select_mask,u8bit0);
955
- u8unibyte= simd_andc(input_select_mask,u8bit0);
956
- u8prefix= simd_and(bit0_selected,u8bit1);
957
- u8suffix= simd_andc(bit0_selected,u8bit1);
958
- u8prefix3or4= simd_and(u8prefix,u8bit2);
959
- u8prefix2= simd_andc(u8prefix,u8bit2);
960
- u8prefix3= simd_andc(u8prefix3or4,u8bit3);
961
- u8prefix4= simd_and(u8prefix3or4,u8bit3);
962
- }
963
-
964
- /*:38*/
965
- #line 727 "libu8u16.w"
966
-
967
- /*43:*/
968
- #line 1053 "libu8u16.w"
969
-
970
- u8scope22= bitblock_sfli(u8prefix2,1);
971
- u8scope33= bitblock_sfli(u8prefix3,2);
972
- u8scope44= bitblock_sfli(u8prefix4,3);
973
- u8lastsuffix= simd_or(simd_or(u8scope22,u8scope33),u8scope44);
974
- u8lastbyte= simd_or(u8unibyte,u8lastsuffix);
975
-
976
- /*:43*/
977
- #line 728 "libu8u16.w"
978
-
979
- /*47:*/
980
- #line 1110 "libu8u16.w"
981
-
982
- error_mask= simd_andc(u8prefix2,simd_or(simd_or(u8bit3,u8bit4),
983
- simd_or(u8bit5,u8bit6)));
984
- suffix_required_scope= u8scope22;
985
-
986
- /*:47*/
987
- #line 729 "libu8u16.w"
988
-
989
- /*52:*/
990
- #line 1185 "libu8u16.w"
991
-
992
- u16hi5= simd_and(u8lastsuffix,bitblock_sfli(u8bit3,1));
993
- u16hi6= simd_and(u8lastsuffix,bitblock_sfli(u8bit4,1));
994
- u16hi7= simd_and(u8lastsuffix,bitblock_sfli(u8bit5,1));
995
- u16lo0= simd_and(u8lastsuffix,bitblock_sfli(u8bit6,1));
996
- u16lo1= simd_or(simd_and(u8unibyte,u8bit1),simd_and(u8lastsuffix,bitblock_sfli(u8bit7,1)));
997
- u16lo2= simd_and(u8lastbyte,u8bit2);
998
- u16lo3= simd_and(u8lastbyte,u8bit3);
999
- u16lo4= simd_and(u8lastbyte,u8bit4);
1000
- u16lo5= simd_and(u8lastbyte,u8bit5);
1001
- u16lo6= simd_and(u8lastbyte,u8bit6);
1002
- u16lo7= simd_and(u8lastbyte,u8bit7);
1003
-
1004
- /*:52*/
1005
- #line 730 "libu8u16.w"
1006
-
1007
- /*55:*/
1008
- #line 1262 "libu8u16.w"
1009
-
1010
- delmask= simd_not(simd_and(input_select_mask,u8lastbyte));
1011
-
1012
- /*:55*/
1013
- #line 731 "libu8u16.w"
1014
-
1015
- #ifndef NO_OPTIMIZATION
1016
- if(/*39:*/
1017
- #line 1027 "libu8u16.w"
1018
-
1019
- bitblock_has_bit(u8prefix3or4)
1020
-
1021
- /*:39*/
1022
- #line 733 "libu8u16.w"
1023
- ){
1024
- /*44:*/
1025
- #line 1063 "libu8u16.w"
1026
-
1027
- u8scope32= bitblock_sfli(u8prefix3,1);
1028
-
1029
- /*:44*/
1030
- #line 734 "libu8u16.w"
1031
-
1032
- /*48:*/
1033
- #line 1120 "libu8u16.w"
1034
-
1035
- {
1036
- BitBlock prefix_E0ED,E0ED_constraint;
1037
- prefix_E0ED= simd_andc(u8prefix3,
1038
- simd_or(simd_or(u8bit6,simd_xor(u8bit4,u8bit7)),
1039
- simd_xor(u8bit4,u8bit5)));
1040
- E0ED_constraint= simd_xor(bitblock_sfli(u8bit5,1),u8bit2);
1041
- error_mask= simd_or(error_mask,
1042
- simd_andc(bitblock_sfli(prefix_E0ED,1),E0ED_constraint));
1043
- suffix_required_scope= simd_or(u8lastsuffix,u8scope32);
1044
- }
1045
-
1046
- /*:48*/
1047
- #line 735 "libu8u16.w"
1048
-
1049
- /*53:*/
1050
- #line 1202 "libu8u16.w"
1051
-
1052
- u16hi0= simd_and(u8scope33,bitblock_sfli(u8bit4,2));
1053
- u16hi1= simd_and(u8scope33,bitblock_sfli(u8bit5,2));
1054
- u16hi2= simd_and(u8scope33,bitblock_sfli(u8bit6,2));
1055
- u16hi3= simd_and(u8scope33,bitblock_sfli(u8bit7,2));
1056
- u16hi4= simd_and(u8scope33,bitblock_sfli(u8bit2,1));
1057
-
1058
- /*:53*/
1059
- #line 736 "libu8u16.w"
1060
-
1061
- if(/*40:*/
1062
- #line 1034 "libu8u16.w"
1063
-
1064
- bitblock_has_bit(u8prefix4)
1065
-
1066
- /*:40*/
1067
- #line 737 "libu8u16.w"
1068
- ){
1069
- /*45:*/
1070
- #line 1068 "libu8u16.w"
1071
-
1072
- u8scope42= bitblock_sfli(u8prefix4,1);
1073
- u8scope43= bitblock_sfli(u8prefix4,2);
1074
- u8surrogate= simd_or(u8scope42,u8scope44);
1075
-
1076
-
1077
-
1078
- /*:45*/
1079
- #line 738 "libu8u16.w"
1080
-
1081
- /*49:*/
1082
- #line 1137 "libu8u16.w"
1083
-
1084
- {
1085
- BitBlock prefix_F5FF,prefix_F0F4,F0F4_constraint;
1086
- prefix_F5FF= simd_and(u8prefix4,simd_or(u8bit4,
1087
- simd_and(u8bit5,
1088
- simd_or(u8bit6,u8bit7))));
1089
- error_mask= simd_or(error_mask,prefix_F5FF);
1090
- prefix_F0F4= simd_andc(u8prefix4,simd_or(u8bit4,simd_or(u8bit6,u8bit7)));
1091
- F0F4_constraint= simd_xor(bitblock_sfli(u8bit5,1),simd_or(u8bit2,u8bit3));
1092
- error_mask= simd_or(error_mask,simd_andc(bitblock_sfli(prefix_F0F4,1),F0F4_constraint));
1093
- suffix_required_scope= simd_or(suffix_required_scope,
1094
- simd_or(u8surrogate,u8scope43));
1095
- }
1096
-
1097
- /*:49*/
1098
- #line 739 "libu8u16.w"
1099
-
1100
- /*54:*/
1101
- #line 1221 "libu8u16.w"
1102
-
1103
- {BitBlock borrow1,borrow2;
1104
- u16hi0= simd_or(u16hi0,u8surrogate);
1105
- u16hi1= simd_or(u16hi1,u8surrogate);
1106
- u16hi3= simd_or(u16hi3,u8surrogate);
1107
- u16hi4= simd_or(u16hi4,u8surrogate);
1108
- u16hi5= simd_or(u16hi5,u8scope44);
1109
- u16lo1= simd_or(u16lo1,simd_and(u8scope42,simd_not(u8bit3)));
1110
-
1111
- u16lo0= simd_or(u16lo0,simd_and(u8scope42,simd_xor(u8bit2,u16lo1)));
1112
- borrow1= simd_andc(u16lo1,u8bit2);
1113
- u16hi7= simd_or(u16hi7,simd_and(u8scope42,simd_xor(bitblock_sfli(u8bit7,1),borrow1)));
1114
- borrow2= simd_andc(borrow1,bitblock_sfli(u8bit7,1));
1115
- u16hi6= simd_or(u16hi6,simd_and(u8scope42,simd_xor(bitblock_sfli(u8bit6,1),borrow2)));
1116
- u16lo2= simd_or(u16lo2,simd_and(u8scope42,u8bit4));
1117
- u16lo3= simd_or(u16lo3,simd_and(u8scope42,u8bit5));
1118
- u16lo4= simd_or(u16lo4,simd_and(u8scope42,u8bit6));
1119
- u16lo5= simd_or(u16lo5,simd_and(u8scope42,u8bit7));
1120
- u16lo6= simd_or(u16lo6,simd_and(u8scope42,bitblock_sbli(u8bit2,1)));
1121
- u16lo7= simd_or(u16lo7,simd_and(u8scope42,bitblock_sbli(u8bit3,1)));
1122
- }
1123
-
1124
-
1125
- /*:54*/
1126
- #line 740 "libu8u16.w"
1127
-
1128
- /*56:*/
1129
- #line 1270 "libu8u16.w"
1130
-
1131
- {BitBlock scope42_selected= bitblock_sbli(simd_and(u8scope44,input_select_mask),2);
1132
- delmask= simd_not(simd_and(input_select_mask,
1133
- simd_or(u8lastbyte,scope42_selected)));
1134
- }
1135
-
1136
- /*:56*/
1137
- #line 741 "libu8u16.w"
1138
-
1139
- }
1140
- }
1141
- #endif
1142
- #ifdef NO_OPTIMIZATION
1143
- /*44:*/
1144
- #line 1063 "libu8u16.w"
1145
-
1146
- u8scope32= bitblock_sfli(u8prefix3,1);
1147
-
1148
- /*:44*/
1149
- #line 746 "libu8u16.w"
1150
-
1151
- /*48:*/
1152
- #line 1120 "libu8u16.w"
1153
-
1154
- {
1155
- BitBlock prefix_E0ED,E0ED_constraint;
1156
- prefix_E0ED= simd_andc(u8prefix3,
1157
- simd_or(simd_or(u8bit6,simd_xor(u8bit4,u8bit7)),
1158
- simd_xor(u8bit4,u8bit5)));
1159
- E0ED_constraint= simd_xor(bitblock_sfli(u8bit5,1),u8bit2);
1160
- error_mask= simd_or(error_mask,
1161
- simd_andc(bitblock_sfli(prefix_E0ED,1),E0ED_constraint));
1162
- suffix_required_scope= simd_or(u8lastsuffix,u8scope32);
1163
- }
1164
-
1165
- /*:48*/
1166
- #line 747 "libu8u16.w"
1167
-
1168
- /*53:*/
1169
- #line 1202 "libu8u16.w"
1170
-
1171
- u16hi0= simd_and(u8scope33,bitblock_sfli(u8bit4,2));
1172
- u16hi1= simd_and(u8scope33,bitblock_sfli(u8bit5,2));
1173
- u16hi2= simd_and(u8scope33,bitblock_sfli(u8bit6,2));
1174
- u16hi3= simd_and(u8scope33,bitblock_sfli(u8bit7,2));
1175
- u16hi4= simd_and(u8scope33,bitblock_sfli(u8bit2,1));
1176
-
1177
- /*:53*/
1178
- #line 748 "libu8u16.w"
1179
-
1180
- /*45:*/
1181
- #line 1068 "libu8u16.w"
1182
-
1183
- u8scope42= bitblock_sfli(u8prefix4,1);
1184
- u8scope43= bitblock_sfli(u8prefix4,2);
1185
- u8surrogate= simd_or(u8scope42,u8scope44);
1186
-
1187
-
1188
-
1189
- /*:45*/
1190
- #line 749 "libu8u16.w"
1191
-
1192
- /*49:*/
1193
- #line 1137 "libu8u16.w"
1194
-
1195
- {
1196
- BitBlock prefix_F5FF,prefix_F0F4,F0F4_constraint;
1197
- prefix_F5FF= simd_and(u8prefix4,simd_or(u8bit4,
1198
- simd_and(u8bit5,
1199
- simd_or(u8bit6,u8bit7))));
1200
- error_mask= simd_or(error_mask,prefix_F5FF);
1201
- prefix_F0F4= simd_andc(u8prefix4,simd_or(u8bit4,simd_or(u8bit6,u8bit7)));
1202
- F0F4_constraint= simd_xor(bitblock_sfli(u8bit5,1),simd_or(u8bit2,u8bit3));
1203
- error_mask= simd_or(error_mask,simd_andc(bitblock_sfli(prefix_F0F4,1),F0F4_constraint));
1204
- suffix_required_scope= simd_or(suffix_required_scope,
1205
- simd_or(u8surrogate,u8scope43));
1206
- }
1207
-
1208
- /*:49*/
1209
- #line 750 "libu8u16.w"
1210
-
1211
- /*54:*/
1212
- #line 1221 "libu8u16.w"
1213
-
1214
- {BitBlock borrow1,borrow2;
1215
- u16hi0= simd_or(u16hi0,u8surrogate);
1216
- u16hi1= simd_or(u16hi1,u8surrogate);
1217
- u16hi3= simd_or(u16hi3,u8surrogate);
1218
- u16hi4= simd_or(u16hi4,u8surrogate);
1219
- u16hi5= simd_or(u16hi5,u8scope44);
1220
- u16lo1= simd_or(u16lo1,simd_and(u8scope42,simd_not(u8bit3)));
1221
-
1222
- u16lo0= simd_or(u16lo0,simd_and(u8scope42,simd_xor(u8bit2,u16lo1)));
1223
- borrow1= simd_andc(u16lo1,u8bit2);
1224
- u16hi7= simd_or(u16hi7,simd_and(u8scope42,simd_xor(bitblock_sfli(u8bit7,1),borrow1)));
1225
- borrow2= simd_andc(borrow1,bitblock_sfli(u8bit7,1));
1226
- u16hi6= simd_or(u16hi6,simd_and(u8scope42,simd_xor(bitblock_sfli(u8bit6,1),borrow2)));
1227
- u16lo2= simd_or(u16lo2,simd_and(u8scope42,u8bit4));
1228
- u16lo3= simd_or(u16lo3,simd_and(u8scope42,u8bit5));
1229
- u16lo4= simd_or(u16lo4,simd_and(u8scope42,u8bit6));
1230
- u16lo5= simd_or(u16lo5,simd_and(u8scope42,u8bit7));
1231
- u16lo6= simd_or(u16lo6,simd_and(u8scope42,bitblock_sbli(u8bit2,1)));
1232
- u16lo7= simd_or(u16lo7,simd_and(u8scope42,bitblock_sbli(u8bit3,1)));
1233
- }
1234
-
1235
-
1236
- /*:54*/
1237
- #line 751 "libu8u16.w"
1238
-
1239
- /*56:*/
1240
- #line 1270 "libu8u16.w"
1241
-
1242
- {BitBlock scope42_selected= bitblock_sbli(simd_and(u8scope44,input_select_mask),2);
1243
- delmask= simd_not(simd_and(input_select_mask,
1244
- simd_or(u8lastbyte,scope42_selected)));
1245
- }
1246
-
1247
- /*:56*/
1248
- #line 752 "libu8u16.w"
1249
-
1250
- #endif
1251
-
1252
- /*50:*/
1253
- #line 1154 "libu8u16.w"
1254
-
1255
- error_mask= simd_or(error_mask,simd_xor(suffix_required_scope,u8suffix));
1256
-
1257
- /*:50*/
1258
- #line 755 "libu8u16.w"
1259
-
1260
-
1261
-
1262
- /*:28*/
1263
- #line 678 "libu8u16.w"
1264
-
1265
- /*57:*/
1266
- #line 1304 "libu8u16.w"
1267
-
1268
- /*60:*/
1269
- #line 1344 "libu8u16.w"
1270
-
1271
- #if ((DOUBLEBYTE_DELETION == FROM_LEFT8) || (BIT_DELETION == ROTATION_TO_LEFT8))
1272
- delcounts_2= simd_add_2_lh(delmask,delmask);
1273
- delcounts_4= simd_add_4_lh(delcounts_2,delcounts_2);
1274
- delcounts_8= simd_add_8_lh(delcounts_4,delcounts_4);
1275
- sisd_store_aligned(simd_slli_8(simd_sub_8(simd_const_8(8),delcounts_8),1),
1276
- (BytePack*)&u16_bytes_per_reg[0]);
1277
- #endif
1278
- #if (BIT_DELETION == ROTATION_TO_LEFT8)
1279
- rotl_2= simd_if(simd_himask_4,delmask,sisd_srli(delmask,1));
1280
- rotl_4= simd_if(simd_himask_8,simd_sub_2(vec_0,delcounts_2),sisd_srli(delcounts_2,2));
1281
- sll_8= sisd_srli(delcounts_4,4);
1282
- #endif
1283
-
1284
- /*:60*//*79:*/
1285
- #line 1844 "libu8u16.w"
1286
-
1287
- #if (BYTE_DELETION == BYTE_DEL_BY_PERMUTE_TO_LEFT8)
1288
- {
1289
- BitBlock d0,d1,q0,q1,p0,p1;
1290
- BitBlock delmask_hi4= simd_srli_8(delmask,4);
1291
-
1292
- d0= simd_permute(del2_4_shift_tbl,del2_4_shift_tbl,delmask_hi4);
1293
- d1= simd_permute(del2_4_shift_tbl,del2_4_shift_tbl,delmask);
1294
- q0= simd_mergeh_8(d0,d1);
1295
- q1= simd_mergel_8(d0,d1);
1296
- p0= simd_srli_8(q0,4);
1297
- p1= simd_srli_8(q1,4);
1298
- l8perm0= simd_rotl_8(packed_identity,simd_mergeh_8(p0,q0));
1299
- l8perm1= simd_rotl_8(packed_identity,simd_mergel_8(p0,q0));
1300
- l8perm2= simd_rotl_8(packed_identity,simd_mergeh_8(p1,q1));
1301
- l8perm3= simd_rotl_8(packed_identity,simd_mergel_8(p1,q1));
1302
-
1303
- d0= simd_permute(del4_8_rshift_tbl,del4_8_rshift_tbl,delmask_hi4);
1304
- d1= simd_permute(del4_8_lshift_tbl,del4_8_lshift_tbl,delmask);
1305
- p0= simd_mergeh_8(d0,d1);
1306
- p1= simd_mergel_8(d0,d1);
1307
- l8perm0= simd_rotl_16(l8perm0,simd_mergeh_8(simd_const_8(0),p0));
1308
- l8perm1= simd_rotl_16(l8perm1,simd_mergel_8(simd_const_8(0),p0));
1309
- l8perm2= simd_rotl_16(l8perm2,simd_mergeh_8(simd_const_8(0),p1));
1310
- l8perm3= simd_rotl_16(l8perm3,simd_mergel_8(simd_const_8(0),p1));
1311
-
1312
- d0= simd_permute(del8_shift_tbl,del8_shift_tbl,delmask_hi4);
1313
- p0= simd_mergeh_8(simd_const_8(0),d0);
1314
- p1= simd_mergel_8(simd_const_8(0),d0);
1315
- l8perm0= simd_rotl_32(l8perm0,simd_mergeh_8(simd_const_8(0),p0));
1316
- l8perm1= simd_rotl_32(l8perm1,simd_mergel_8(simd_const_8(0),p0));
1317
- l8perm2= simd_rotl_32(l8perm2,simd_mergeh_8(simd_const_8(0),p1));
1318
- l8perm3= simd_rotl_32(l8perm3,simd_mergel_8(simd_const_8(0),p1));
1319
- }
1320
- #endif
1321
- #if (DOUBLEBYTE_DELETION == ALTIVEC_FROM_LEFT8)
1322
- {
1323
- BitBlock delmask_hi4= simd_srli_8(delmask,4);
1324
- delcounts_8= simd_add_8(simd_permute(bits_per_nybble_tbl,bits_per_nybble_tbl,delmask_hi4),
1325
- simd_permute(bits_per_nybble_tbl,bits_per_nybble_tbl,delmask));
1326
- u16_bytes_8= simd_slli_8(simd_sub_8(simd_const_8(8),delcounts_8),1);
1327
- }
1328
- #endif
1329
-
1330
- /*:79*//*90:*/
1331
- #line 2037 "libu8u16.w"
1332
-
1333
- #if (BIT_DELETION == SHIFT_TO_RIGHT4)
1334
- del4_rshift1= simd_xor(simd_slli_4(delmask,1),simd_slli_4(delmask,2));
1335
- del4_rshift1= simd_xor(del4_rshift1,simd_slli_4(del4_rshift1,2));
1336
-
1337
- del4_trans2= simd_and(del4_rshift1,delmask);
1338
-
1339
- del4_rshift2= simd_xor(simd_slli_4(del4_trans2,1),simd_slli_4(del4_trans2,2));
1340
- del4_rshift2= simd_xor(del4_rshift2,simd_slli_4(del4_rshift2,2));
1341
-
1342
- del4_rshift1= simd_andc(del4_rshift1,delmask);
1343
- del4_rshift2= simd_andc(del4_rshift2,delmask);
1344
-
1345
- del4_rshift2= simd_add_4(simd_and(del4_rshift1,del4_rshift2),del4_rshift2);
1346
- #endif
1347
-
1348
- /*:90*//*95:*/
1349
- #line 2098 "libu8u16.w"
1350
-
1351
- #if (DOUBLEBYTE_DELETION == FROM_LEFT4)
1352
- delcounts_2= simd_add_2_lh(delmask,delmask);
1353
- delcounts_4= simd_add_4_lh(delcounts_2,delcounts_2);
1354
- u16_bytes_4= sisd_slli(simd_sub_8(simd_const_4(4),delcounts_4),1);
1355
-
1356
- #if BYTE_ORDER == BIG_ENDIAN
1357
- sisd_store_aligned(simd_mergeh_4(simd_const_4(0),u16_bytes_4),
1358
- &u16_bytes_per_reg[0]);
1359
- sisd_store_aligned(simd_mergel_4(simd_const_4(0),u16_bytes_4),
1360
- &u16_bytes_per_reg[8]);
1361
- #endif
1362
- #if BYTE_ORDER == LITTLE_ENDIAN
1363
- sisd_store_aligned(simd_mergel_4(simd_const_4(0),u16_bytes_4),
1364
- &u16_bytes_per_reg[0]);
1365
- sisd_store_aligned(simd_mergeh_4(simd_const_4(0),u16_bytes_4),
1366
- &u16_bytes_per_reg[8]);
1367
- #endif
1368
- #endif
1369
-
1370
- /*:95*//*99:*/
1371
- #line 2138 "libu8u16.w"
1372
-
1373
- #if ((BIT_DELETION == SHIFT_TO_RIGHT8) || (BIT_DELETION == PERMUTE_INDEX_TO_RIGHT8))
1374
- del8_rshift1= simd_xor(simd_slli_8(delmask,1),simd_slli_8(delmask,2));
1375
- del8_rshift1= simd_xor(del8_rshift1,simd_slli_8(del8_rshift1,2));
1376
- del8_rshift1= simd_xor(del8_rshift1,simd_slli_8(del8_rshift1,4));
1377
-
1378
- del8_trans2= simd_and(del8_rshift1,delmask);
1379
-
1380
- del8_rshift2= simd_xor(simd_slli_8(del8_trans2,1),simd_slli_8(del8_trans2,2));
1381
- del8_rshift2= simd_xor(del8_rshift2,simd_slli_8(del8_rshift2,2));
1382
- del8_rshift2= simd_xor(del8_rshift2,simd_slli_8(del8_rshift2,4));
1383
-
1384
- del8_trans4= simd_and(del8_rshift2,del8_trans2);
1385
- del8_rshift4= simd_xor(simd_slli_8(del8_trans4,1),simd_slli_8(del8_trans4,2));
1386
- del8_rshift4= simd_xor(del8_rshift4,simd_slli_8(del8_rshift4,2));
1387
- del8_rshift4= simd_xor(del8_rshift4,simd_slli_8(del8_rshift4,4));
1388
-
1389
- del8_rshift1= simd_andc(del8_rshift1,delmask);
1390
- del8_rshift2= simd_andc(del8_rshift2,delmask);
1391
- del8_rshift4= simd_andc(del8_rshift4,delmask);
1392
-
1393
- del8_rshift2= simd_sub_8(del8_rshift2,simd_srli_16(simd_and(del8_rshift1,del8_rshift2),1));
1394
-
1395
- del8_rshift4= simd_sub_8(del8_rshift4,simd_srli_16(simd_and(del8_rshift1,del8_rshift4),1));
1396
- {BitBlock shift_bits= simd_and(del8_rshift2,del8_rshift4);
1397
- del8_rshift4= simd_or(simd_srli_16(shift_bits,2),simd_xor(del8_rshift4,shift_bits));}
1398
- #endif
1399
-
1400
- /*:99*/
1401
- #line 1305 "libu8u16.w"
1402
-
1403
- /*63:*/
1404
- #line 1372 "libu8u16.w"
1405
-
1406
- #if (BIT_DELETION == ROTATION_TO_LEFT8)
1407
- u16hi5= simd_sll_8(simd_rotl_4(simd_rotl_2(u16hi5,rotl_2),rotl_4),sll_8);
1408
- u16hi6= simd_sll_8(simd_rotl_4(simd_rotl_2(u16hi6,rotl_2),rotl_4),sll_8);
1409
- u16hi7= simd_sll_8(simd_rotl_4(simd_rotl_2(u16hi7,rotl_2),rotl_4),sll_8);
1410
- u16lo0= simd_sll_8(simd_rotl_4(simd_rotl_2(u16lo0,rotl_2),rotl_4),sll_8);
1411
- u16lo1= simd_sll_8(simd_rotl_4(simd_rotl_2(u16lo1,rotl_2),rotl_4),sll_8);
1412
- u16lo2= simd_sll_8(simd_rotl_4(simd_rotl_2(u16lo2,rotl_2),rotl_4),sll_8);
1413
- u16lo3= simd_sll_8(simd_rotl_4(simd_rotl_2(u16lo3,rotl_2),rotl_4),sll_8);
1414
- u16lo4= simd_sll_8(simd_rotl_4(simd_rotl_2(u16lo4,rotl_2),rotl_4),sll_8);
1415
- u16lo5= simd_sll_8(simd_rotl_4(simd_rotl_2(u16lo5,rotl_2),rotl_4),sll_8);
1416
- u16lo6= simd_sll_8(simd_rotl_4(simd_rotl_2(u16lo6,rotl_2),rotl_4),sll_8);
1417
- u16lo7= simd_sll_8(simd_rotl_4(simd_rotl_2(u16lo7,rotl_2),rotl_4),sll_8);
1418
- #endif
1419
-
1420
-
1421
-
1422
- /*:63*//*82:*/
1423
- #line 1919 "libu8u16.w"
1424
-
1425
- #if (BYTE_DELETION == BYTE_DEL_BY_PERMUTE_TO_LEFT8)
1426
- {
1427
- }
1428
- #endif
1429
-
1430
- /*:82*//*93:*/
1431
- #line 2078 "libu8u16.w"
1432
-
1433
- #if (BIT_DELETION == SHIFT_TO_RIGHT4)
1434
- do_right4_shifts(u16hi5,del4_rshift1,del4_rshift2)
1435
- do_right4_shifts(u16hi6,del4_rshift1,del4_rshift2)
1436
- do_right4_shifts(u16hi7,del4_rshift1,del4_rshift2)
1437
- do_right4_shifts(u16lo0,del4_rshift1,del4_rshift2)
1438
- do_right4_shifts(u16lo1,del4_rshift1,del4_rshift2)
1439
- do_right4_shifts(u16lo2,del4_rshift1,del4_rshift2)
1440
- do_right4_shifts(u16lo3,del4_rshift1,del4_rshift2)
1441
- do_right4_shifts(u16lo4,del4_rshift1,del4_rshift2)
1442
- do_right4_shifts(u16lo5,del4_rshift1,del4_rshift2)
1443
- do_right4_shifts(u16lo6,del4_rshift1,del4_rshift2)
1444
- do_right4_shifts(u16lo7,del4_rshift1,del4_rshift2)
1445
- #endif
1446
-
1447
- /*:93*//*102:*/
1448
- #line 2192 "libu8u16.w"
1449
-
1450
- #if (BIT_DELETION == SHIFT_TO_RIGHT8)
1451
- do_right8_shifts(u16hi5,del8_rshift1,del8_rshift2,del8_rshift4)
1452
- do_right8_shifts(u16hi6,del8_rshift1,del8_rshift2,del8_rshift4)
1453
- do_right8_shifts(u16hi7,del8_rshift1,del8_rshift2,del8_rshift4)
1454
- do_right8_shifts(u16lo0,del8_rshift1,del8_rshift2,del8_rshift4)
1455
- do_right8_shifts(u16lo1,del8_rshift1,del8_rshift2,del8_rshift4)
1456
- do_right8_shifts(u16lo2,del8_rshift1,del8_rshift2,del8_rshift4)
1457
- do_right8_shifts(u16lo3,del8_rshift1,del8_rshift2,del8_rshift4)
1458
- do_right8_shifts(u16lo4,del8_rshift1,del8_rshift2,del8_rshift4)
1459
- do_right8_shifts(u16lo5,del8_rshift1,del8_rshift2,del8_rshift4)
1460
- do_right8_shifts(u16lo6,del8_rshift1,del8_rshift2,del8_rshift4)
1461
- do_right8_shifts(u16lo7,del8_rshift1,del8_rshift2,del8_rshift4)
1462
- #endif
1463
-
1464
-
1465
-
1466
- /*:102*/
1467
- #line 1306 "libu8u16.w"
1468
-
1469
- if(!/*39:*/
1470
- #line 1027 "libu8u16.w"
1471
-
1472
- bitblock_has_bit(u8prefix3or4)
1473
-
1474
- /*:39*/
1475
- #line 1307 "libu8u16.w"
1476
- ){
1477
- /*22:*/
1478
- #line 612 "libu8u16.w"
1479
-
1480
- #if (P2S_ALGORITHM == P2S_IDEAL)
1481
- #if (BYTE_ORDER == BIG_ENDIAN)
1482
- p2s_567_ideal(u16hi5,u16hi6,u16hi7,
1483
- U16h0,U16h1,U16h2,U16h3,U16h4,U16h5,U16h6,U16h7)
1484
- #endif
1485
- #if (BYTE_ORDER == LITTLE_ENDIAN)
1486
- p2s_567_ideal(u16hi5,u16hi6,u16hi7,
1487
- U16h7,U16h6,U16h5,U16h4,U16h3,U16h2,U16h1,U16h0)
1488
- #endif
1489
- #endif
1490
-
1491
- /*:22*//*73:*/
1492
- #line 1679 "libu8u16.w"
1493
-
1494
- #if (P2S_ALGORITHM == P2S_BYTEMERGE)
1495
- #if (BYTE_ORDER == BIG_ENDIAN)
1496
- p2s_567_bytemerge(u16hi5,u16hi6,u16hi7,
1497
- U16h0,U16h1,U16h2,U16h3,U16h4,U16h5,U16h6,U16h7)
1498
- #endif
1499
- #if (BYTE_ORDER == LITTLE_ENDIAN)
1500
- p2s_567_bytemerge(u16hi5,u16hi6,u16hi7,
1501
- U16h7,U16h6,U16h5,U16h4,U16h3,U16h2,U16h1,U16h0)
1502
- #endif
1503
- #endif
1504
-
1505
-
1506
- /*:73*/
1507
- #line 1308 "libu8u16.w"
1508
-
1509
- }
1510
- else{
1511
- /*62:*/
1512
- #line 1363 "libu8u16.w"
1513
-
1514
- #if (BIT_DELETION == ROTATION_TO_LEFT8)
1515
- u16hi0= simd_sll_8(simd_rotl_4(simd_rotl_2(u16hi0,rotl_2),rotl_4),sll_8);
1516
- u16hi1= simd_sll_8(simd_rotl_4(simd_rotl_2(u16hi1,rotl_2),rotl_4),sll_8);
1517
- u16hi2= simd_sll_8(simd_rotl_4(simd_rotl_2(u16hi2,rotl_2),rotl_4),sll_8);
1518
- u16hi3= simd_sll_8(simd_rotl_4(simd_rotl_2(u16hi3,rotl_2),rotl_4),sll_8);
1519
- u16hi4= simd_sll_8(simd_rotl_4(simd_rotl_2(u16hi4,rotl_2),rotl_4),sll_8);
1520
- #endif
1521
-
1522
- /*:62*//*81:*/
1523
- #line 1913 "libu8u16.w"
1524
-
1525
- #if (BYTE_DELETION == BYTE_DEL_BY_PERMUTE_TO_LEFT8)
1526
- {
1527
- }
1528
- #endif
1529
-
1530
- /*:81*//*92:*/
1531
- #line 2069 "libu8u16.w"
1532
-
1533
- #if (BIT_DELETION == SHIFT_TO_RIGHT4)
1534
- do_right4_shifts(u16hi0,del4_rshift1,del4_rshift2)
1535
- do_right4_shifts(u16hi1,del4_rshift1,del4_rshift2)
1536
- do_right4_shifts(u16hi2,del4_rshift1,del4_rshift2)
1537
- do_right4_shifts(u16hi3,del4_rshift1,del4_rshift2)
1538
- do_right4_shifts(u16hi4,del4_rshift1,del4_rshift2)
1539
- #endif
1540
-
1541
- /*:92*//*101:*/
1542
- #line 2184 "libu8u16.w"
1543
-
1544
- #if (BIT_DELETION == SHIFT_TO_RIGHT8)
1545
- do_right8_shifts(u16hi0,del8_rshift1,del8_rshift2,del8_rshift4)
1546
- do_right8_shifts(u16hi1,del8_rshift1,del8_rshift2,del8_rshift4)
1547
- do_right8_shifts(u16hi2,del8_rshift1,del8_rshift2,del8_rshift4)
1548
- do_right8_shifts(u16hi3,del8_rshift1,del8_rshift2,del8_rshift4)
1549
- do_right8_shifts(u16hi4,del8_rshift1,del8_rshift2,del8_rshift4)
1550
- #endif
1551
- /*:101*/
1552
- #line 1311 "libu8u16.w"
1553
-
1554
- /*20:*/
1555
- #line 559 "libu8u16.w"
1556
-
1557
- #if (P2S_ALGORITHM == P2S_IDEAL)
1558
- #if (BYTE_ORDER == BIG_ENDIAN)
1559
- p2s_ideal(u16hi0,u16hi1,u16hi2,u16hi3,u16hi4,u16hi5,u16hi6,u16hi7,
1560
- U16h0,U16h1,U16h2,U16h3,U16h4,U16h5,U16h6,U16h7)
1561
- #endif
1562
- #if (BYTE_ORDER == LITTLE_ENDIAN)
1563
- p2s_ideal(u16hi0,u16hi1,u16hi2,u16hi3,u16hi4,u16hi5,u16hi6,u16hi7,
1564
- U16h7,U16h6,U16h5,U16h4,U16h3,U16h2,U16h1,U16h0)
1565
- #endif
1566
- #endif
1567
-
1568
- /*:20*//*71:*/
1569
- #line 1621 "libu8u16.w"
1570
-
1571
- #if (P2S_ALGORITHM == P2S_BYTEMERGE)
1572
- #if (BYTE_ORDER == BIG_ENDIAN)
1573
- p2s_bytemerge(u16hi0,u16hi1,u16hi2,u16hi3,u16hi4,u16hi5,u16hi6,u16hi7,
1574
- U16h0,U16h1,U16h2,U16h3,U16h4,U16h5,U16h6,U16h7)
1575
- #endif
1576
- #if (BYTE_ORDER == LITTLE_ENDIAN)
1577
- p2s_bytemerge(u16hi0,u16hi1,u16hi2,u16hi3,u16hi4,u16hi5,u16hi6,u16hi7,
1578
- U16h7,U16h6,U16h5,U16h4,U16h3,U16h2,U16h1,U16h0)
1579
- #endif
1580
- #endif
1581
-
1582
- /*:71*/
1583
- #line 1312 "libu8u16.w"
1584
-
1585
- }
1586
- /*21:*/
1587
- #line 571 "libu8u16.w"
1588
-
1589
- #if (P2S_ALGORITHM == P2S_IDEAL)
1590
- #if (BYTE_ORDER == BIG_ENDIAN)
1591
- p2s_ideal(u16lo0,u16lo1,u16lo2,u16lo3,u16lo4,u16lo5,u16lo6,u16lo7,
1592
- U16l0,U16l1,U16l2,U16l3,U16l4,U16l5,U16l6,U16l7)
1593
- #endif
1594
- #if (BYTE_ORDER == LITTLE_ENDIAN)
1595
- p2s_ideal(u16lo0,u16lo1,u16lo2,u16lo3,u16lo4,u16lo5,u16lo6,u16lo7,
1596
- U16l7,U16l6,U16l5,U16l4,U16l3,U16l2,U16l1,U16l0)
1597
- #endif
1598
- #endif
1599
-
1600
-
1601
- /*:21*//*72:*/
1602
- #line 1633 "libu8u16.w"
1603
-
1604
- #if (P2S_ALGORITHM == P2S_BYTEMERGE)
1605
- #if (BYTE_ORDER == BIG_ENDIAN)
1606
- p2s_bytemerge(u16lo0,u16lo1,u16lo2,u16lo3,u16lo4,u16lo5,u16lo6,u16lo7,
1607
- U16l0,U16l1,U16l2,U16l3,U16l4,U16l5,U16l6,U16l7)
1608
- #endif
1609
- #if (BYTE_ORDER == LITTLE_ENDIAN)
1610
- p2s_bytemerge(u16lo0,u16lo1,u16lo2,u16lo3,u16lo4,u16lo5,u16lo6,u16lo7,
1611
- U16l7,U16l6,U16l5,U16l4,U16l3,U16l2,U16l1,U16l0)
1612
- #endif
1613
- #endif
1614
-
1615
-
1616
- /*:72*/
1617
- #line 1314 "libu8u16.w"
1618
-
1619
- /*64:*/
1620
- #line 1389 "libu8u16.w"
1621
-
1622
-
1623
-
1624
-
1625
- /*:64*//*83:*/
1626
- #line 1934 "libu8u16.w"
1627
-
1628
- #if (BYTE_DELETION == BYTE_DEL_BY_PERMUTE_TO_LEFT8)
1629
- {
1630
- BitBlock high_perm,low_perm;
1631
- unpack_packed_permutation(l8perm0,high_perm,low_perm)
1632
- U16l0= simd_permute(U16l0,U16l0,high_perm);
1633
- U16h0= simd_permute(U16h0,U16h0,high_perm);
1634
- U16l1= simd_permute(U16l1,U16l1,low_perm);
1635
- U16h1= simd_permute(U16h1,U16h1,low_perm);
1636
- unpack_packed_permutation(l8perm1,high_perm,low_perm)
1637
- U16l2= simd_permute(U16l2,U16l2,high_perm);
1638
- U16h2= simd_permute(U16h2,U16h2,high_perm);
1639
- U16l3= simd_permute(U16l3,U16l3,low_perm);
1640
- U16h3= simd_permute(U16h3,U16h3,low_perm);
1641
- unpack_packed_permutation(l8perm2,high_perm,low_perm)
1642
- U16l4= simd_permute(U16l4,U16l4,high_perm);
1643
- U16h4= simd_permute(U16h4,U16h4,high_perm);
1644
- U16l5= simd_permute(U16l5,U16l5,low_perm);
1645
- U16h5= simd_permute(U16h5,U16h5,low_perm);
1646
- unpack_packed_permutation(l8perm3,high_perm,low_perm)
1647
- U16l6= simd_permute(U16l6,U16l6,high_perm);
1648
- U16h6= simd_permute(U16h6,U16h6,high_perm);
1649
- U16l7= simd_permute(U16l7,U16l7,low_perm);
1650
- U16h7= simd_permute(U16h7,U16h7,low_perm);
1651
-
1652
- }
1653
- #endif
1654
-
1655
-
1656
-
1657
- /*:83*//*103:*/
1658
- #line 2209 "libu8u16.w"
1659
-
1660
- #if (BYTE_DELETION == BYTE_DEL_BY_PERMUTE_TO_RIGHT8)
1661
- {
1662
- BitBlock permute_index_bit0= simd_andc(simd_const_8(0xAA),delmask);
1663
- BitBlock permute_index_bit1= simd_andc(simd_const_8(0xCC),delmask);
1664
- BitBlock permute_index_bit2= simd_andc(simd_const_8(0xF0),delmask);
1665
- BitBlock permute_high_offset= sisd_sfli(simd_const_8(0x08),64);
1666
- BitBlock perm[8];
1667
-
1668
- do_right8_shifts(permute_index_bit0,del8_rshift1,del8_rshift2,del8_rshift4)
1669
- do_right8_shifts(permute_index_bit1,del8_rshift1,del8_rshift2,del8_rshift4)
1670
- do_right8_shifts(permute_index_bit2,del8_rshift1,del8_rshift2,del8_rshift4)
1671
-
1672
- p2s_567_bytemerge(permute_index_bit2,permute_index_bit1,permute_index_bit0,
1673
- perm[7],perm[6],perm[5],perm[4],perm[3],perm[2],perm[1],perm[0])
1674
-
1675
- perm[0]= simd_or(perm[0],permute_high_offset);
1676
- perm[1]= simd_or(perm[1],permute_high_offset);
1677
- perm[2]= simd_or(perm[2],permute_high_offset);
1678
- perm[3]= simd_or(perm[3],permute_high_offset);
1679
- perm[4]= simd_or(perm[4],permute_high_offset);
1680
- perm[5]= simd_or(perm[5],permute_high_offset);
1681
- perm[6]= simd_or(perm[6],permute_high_offset);
1682
- perm[7]= simd_or(perm[7],permute_high_offset);
1683
-
1684
- U16l0= simd_permute(U16l0,perm[0]);
1685
- U16h0= simd_permute(U16h0,perm[0]);
1686
- U16l1= simd_permute(U16l1,perm[1]);
1687
- U16h1= simd_permute(U16h1,perm[1]);
1688
- U16l2= simd_permute(U16l2,perm[2]);
1689
- U16h2= simd_permute(U16h2,perm[2]);
1690
- U16l3= simd_permute(U16l3,perm[3]);
1691
- U16h3= simd_permute(U16h3,perm[3]);
1692
- U16l4= simd_permute(U16l4,perm[4]);
1693
- U16h4= simd_permute(U16h4,perm[4]);
1694
- U16l5= simd_permute(U16l5,perm[5]);
1695
- U16h5= simd_permute(U16h5,perm[5]);
1696
- U16l6= simd_permute(U16l6,perm[6]);
1697
- U16h6= simd_permute(U16h6,perm[6]);
1698
- U16l7= simd_permute(U16l7,perm[7]);
1699
- U16h7= simd_permute(U16h7,perm[7]);
1700
-
1701
- }
1702
- #endif
1703
-
1704
-
1705
-
1706
-
1707
-
1708
- /*:103*/
1709
- #line 1315 "libu8u16.w"
1710
-
1711
- /*23:*/
1712
- #line 630 "libu8u16.w"
1713
-
1714
- U16s0= u16_merge0(U16h0,U16l0);
1715
- U16s1= u16_merge1(U16h0,U16l0);
1716
- U16s2= u16_merge0(U16h1,U16l1);
1717
- U16s3= u16_merge1(U16h1,U16l1);
1718
- U16s4= u16_merge0(U16h2,U16l2);
1719
- U16s5= u16_merge1(U16h2,U16l2);
1720
- U16s6= u16_merge0(U16h3,U16l3);
1721
- U16s7= u16_merge1(U16h3,U16l3);
1722
- U16s8= u16_merge0(U16h4,U16l4);
1723
- U16s9= u16_merge1(U16h4,U16l4);
1724
- U16s10= u16_merge0(U16h5,U16l5);
1725
- U16s11= u16_merge1(U16h5,U16l5);
1726
- U16s12= u16_merge0(U16h6,U16l6);
1727
- U16s13= u16_merge1(U16h6,U16l6);
1728
- U16s14= u16_merge0(U16h7,U16l7);
1729
- U16s15= u16_merge1(U16h7,U16l7);
1730
-
1731
-
1732
- /*:23*/
1733
- #line 1316 "libu8u16.w"
1734
-
1735
- /*65:*/
1736
- #line 1398 "libu8u16.w"
1737
-
1738
- #ifdef OUTBUF_WRITE_NONALIGNED
1739
- u16advance= 0;
1740
- unaligned_output_step(U16s0,u16_bytes_per_reg[0])
1741
- unaligned_output_step(U16s1,u16_bytes_per_reg[1])
1742
- unaligned_output_step(U16s2,u16_bytes_per_reg[2])
1743
- unaligned_output_step(U16s3,u16_bytes_per_reg[3])
1744
- unaligned_output_step(U16s4,u16_bytes_per_reg[4])
1745
- unaligned_output_step(U16s5,u16_bytes_per_reg[5])
1746
- unaligned_output_step(U16s6,u16_bytes_per_reg[6])
1747
- unaligned_output_step(U16s7,u16_bytes_per_reg[7])
1748
- unaligned_output_step(U16s8,u16_bytes_per_reg[8])
1749
- unaligned_output_step(U16s9,u16_bytes_per_reg[9])
1750
- unaligned_output_step(U16s10,u16_bytes_per_reg[10])
1751
- unaligned_output_step(U16s11,u16_bytes_per_reg[11])
1752
- unaligned_output_step(U16s12,u16_bytes_per_reg[12])
1753
- unaligned_output_step(U16s13,u16_bytes_per_reg[13])
1754
- unaligned_output_step(U16s14,u16_bytes_per_reg[14])
1755
- unaligned_output_step(U16s15,u16_bytes_per_reg[15])
1756
- #endif
1757
-
1758
-
1759
-
1760
- /*:65*//*85:*/
1761
- #line 1977 "libu8u16.w"
1762
-
1763
- #if ((U8U16_TARGET == ALTIVEC_TARGET) || (U8U16_TARGET == SPU_TARGET))
1764
- {
1765
- u16advance= 0;
1766
- BitBlock vec_0__15= vec_lvsl1(0);
1767
- unsigned char*dbyte_count= (unsigned char*)&u16_bytes_8;
1768
- output_step(U16s0,0)
1769
- output_step(U16s1,1)
1770
- output_step(U16s2,2)
1771
- output_step(U16s3,3)
1772
- output_step(U16s4,4)
1773
- output_step(U16s5,5)
1774
- output_step(U16s6,6)
1775
- output_step(U16s7,7)
1776
- output_step(U16s8,8)
1777
- output_step(U16s9,9)
1778
- output_step(U16s10,10)
1779
- output_step(U16s11,11)
1780
- output_step(U16s12,12)
1781
- output_step(U16s13,13)
1782
- output_step(U16s14,14)
1783
- output_step(U16s15,15)
1784
- vec_st(simd_permute(pending,simd_const_8(0),
1785
- vec_lvsl1(16-(0x0F&((int)&U16out[u16advance])))),
1786
- u16advance-1,U16out);
1787
- }
1788
- #endif
1789
-
1790
- /*:85*/
1791
- #line 1317 "libu8u16.w"
1792
-
1793
-
1794
-
1795
- /*:57*/
1796
- #line 679 "libu8u16.w"
1797
-
1798
- if(bitblock_has_bit(error_mask))/*67:*/
1799
- #line 1428 "libu8u16.w"
1800
-
1801
- {
1802
- BitBlock cutoff_mask,errbit,u8scopex2;
1803
- int errpos,u8u16errno;
1804
- /*44:*/
1805
- #line 1063 "libu8u16.w"
1806
-
1807
- u8scope32= bitblock_sfli(u8prefix3,1);
1808
-
1809
- /*:44*/
1810
- #line 1432 "libu8u16.w"
1811
-
1812
- /*45:*/
1813
- #line 1068 "libu8u16.w"
1814
-
1815
- u8scope42= bitblock_sfli(u8prefix4,1);
1816
- u8scope43= bitblock_sfli(u8prefix4,2);
1817
- u8surrogate= simd_or(u8scope42,u8scope44);
1818
-
1819
-
1820
-
1821
- /*:45*/
1822
- #line 1433 "libu8u16.w"
1823
-
1824
- u8scopex2= simd_or(u8scope22,simd_or(u8scope32,u8scope42));
1825
- if(!bitblock_has_bit(simd_and(error_mask,input_select_mask))){
1826
-
1827
- u8u16errno= EINVAL;
1828
- }
1829
- else{
1830
- u8u16errno= EILSEQ;
1831
- }
1832
- errpos= count_forward_zeroes(error_mask);
1833
- u8advance= errpos-count_forward_zeroes(input_select_mask);
1834
- cutoff_mask= sisd_sfl(simd_const_8(-1),sisd_from_int(errpos));
1835
- errbit= simd_andc(error_mask,sisd_sfli(cutoff_mask,1));
1836
- input_select_mask= simd_andc(input_select_mask,cutoff_mask);
1837
- u16advance= 2*(bitblock_bit_count(simd_and(u8lastbyte,input_select_mask))+
1838
- bitblock_bit_count(simd_and(u8scope42,input_select_mask)));
1839
- if(bitblock_has_bit(simd_and(u8scope44,errbit))){
1840
- u8advance-= 3;
1841
- u16advance-= 2;
1842
- }
1843
- else if(bitblock_has_bit(simd_and(u8scope43,errbit))){
1844
- u8advance-= 2;
1845
- u16advance-= 2;
1846
- }
1847
- else if(bitblock_has_bit(simd_and(u8scope33,errbit))){
1848
- u8advance-= 2;
1849
- }
1850
- else if(bitblock_has_bit(simd_and(u8scopex2,errbit))){
1851
- u8advance-= 1;
1852
- }
1853
-
1854
- /*26:*/
1855
- #line 704 "libu8u16.w"
1856
-
1857
- inbytes-= u8advance;
1858
- U8data+= u8advance;
1859
- U16out+= u16advance;
1860
-
1861
- /*:26*/
1862
- #line 1464 "libu8u16.w"
1863
-
1864
-
1865
- *outbytesleft-= (intptr_t)U16out-(intptr_t)*outbuf;
1866
- *inbytesleft= inbytes;
1867
- *inbuf= (char*)U8data;
1868
- *outbuf= (char*)U16out;
1869
- /*97:*/
1870
- #line 2123 "libu8u16.w"
1871
-
1872
- #if (U8U16_TARGET == MMX_TARGET)
1873
- _mm_empty();
1874
- #endif
1875
-
1876
- /*:97*/
1877
- #line 1470 "libu8u16.w"
1878
- ;
1879
- errno= u8u16errno;
1880
- return(size_t)-1;
1881
- }
1882
-
1883
- /*:67*/
1884
- #line 680 "libu8u16.w"
1885
-
1886
- /*26:*/
1887
- #line 704 "libu8u16.w"
1888
-
1889
- inbytes-= u8advance;
1890
- U8data+= u8advance;
1891
- U16out+= u16advance;
1892
-
1893
- /*:26*/
1894
- #line 681 "libu8u16.w"
1895
-
1896
- }
1897
- /*29:*/
1898
- #line 763 "libu8u16.w"
1899
-
1900
- *outbytesleft-= (intptr_t)U16out-(intptr_t)*outbuf;
1901
- *inbuf= (char*)U8data;
1902
- *inbytesleft= inbytes;
1903
- *outbuf= (char*)U16out;
1904
- /*97:*/
1905
- #line 2123 "libu8u16.w"
1906
-
1907
- #if (U8U16_TARGET == MMX_TARGET)
1908
- _mm_empty();
1909
- #endif
1910
-
1911
- /*:97*/
1912
- #line 768 "libu8u16.w"
1913
- ;
1914
- if(inbytes==0)return(size_t)0;
1915
- else return(size_t)-1;
1916
-
1917
-
1918
- /*:29*/
1919
- #line 683 "libu8u16.w"
1920
-
1921
- }
1922
-
1923
- /*:24*/
1924
- #line 267 "libu8u16.w"
1925
-
1926
- else return buffered_u8u16(inbuf,inbytesleft,outbuf,outbytesleft);
1927
- }
1928
- else if(inbuf==NULL||*inbuf==NULL||*inbytesleft==0)
1929
- return(size_t)0;
1930
- else{errno= E2BIG;return(size_t)-1;}
1931
- }
1932
-
1933
- /*:5*//*69:*/
1934
- #line 1483 "libu8u16.w"
1935
-
1936
- size_t
1937
- buffered_u8u16(char**inbuf,size_t*inbytesleft,char**outbuf,size_t*outbytesleft){
1938
- if(inbuf&&*inbuf&&outbuf&&*outbuf){
1939
- unsigned char*inbuf_start= (unsigned char*)*inbuf;
1940
- size_t max_inbytes= min(3*(*outbytesleft)/2,*inbytesleft);
1941
- size_t internal_space= 2*(*inbytesleft)+PACKSIZE;
1942
- size_t internal_space_left= internal_space;
1943
- char*internal_buf_start= (char*)malloc(internal_space);
1944
- char*internal_buf= internal_buf_start;
1945
- size_t return_code= u8u16(inbuf,&max_inbytes,&internal_buf,&internal_space_left);
1946
- intptr_t u16advance= internal_space-internal_space_left;
1947
- intptr_t u8advance= (intptr_t)(*inbuf)-(intptr_t)inbuf_start;
1948
- if(size_t(u16advance)> *outbytesleft){
1949
- errno= E2BIG;
1950
- return_code= (size_t)-1;
1951
- do{
1952
- do{
1953
- u8advance--;
1954
- }
1955
- while(is_suffix_byte(inbuf_start[u8advance]));
1956
- if(is_prefix4_byte(inbuf_start[u8advance]))u16advance-= 4;
1957
- else u16advance-= 2;
1958
- }while(size_t(u16advance)> *outbytesleft);
1959
- }
1960
- memcpy(*outbuf,internal_buf_start,u16advance);
1961
- free(internal_buf_start);
1962
- *inbuf= (char*)inbuf_start+u8advance;
1963
- *inbytesleft-= u8advance;
1964
- *outbuf+= u16advance;
1965
- *outbytesleft-= u16advance;
1966
- return return_code;
1967
- }
1968
- else if(inbuf==NULL||*inbuf==NULL||*inbytesleft==0)
1969
- return(size_t)0;
1970
- else{errno= E2BIG;return(size_t)-1;}
1971
- }
1972
-
1973
-
1974
-
1975
- /*:69*/