react-native-quick-crypto 1.0.19 → 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.
- package/QuickCrypto.podspec +12 -38
- package/README.md +2 -0
- package/android/CMakeLists.txt +3 -0
- package/android/build.gradle +5 -1
- package/cpp/argon2/HybridArgon2.cpp +10 -3
- package/cpp/blake3/HybridBlake3.cpp +5 -3
- package/cpp/cipher/CCMCipher.cpp +29 -16
- package/cpp/cipher/CCMCipher.hpp +2 -4
- package/cpp/cipher/ChaCha20Cipher.cpp +14 -18
- package/cpp/cipher/ChaCha20Cipher.hpp +2 -4
- package/cpp/cipher/ChaCha20Poly1305Cipher.cpp +34 -23
- package/cpp/cipher/ChaCha20Poly1305Cipher.hpp +2 -4
- package/cpp/cipher/GCMCipher.cpp +14 -15
- package/cpp/cipher/HybridCipher.cpp +39 -36
- package/cpp/cipher/HybridCipher.hpp +17 -1
- package/cpp/cipher/HybridRsaCipher.cpp +74 -29
- package/cpp/cipher/OCBCipher.cpp +4 -3
- package/cpp/cipher/XChaCha20Poly1305Cipher.cpp +14 -13
- package/cpp/cipher/XSalsa20Cipher.cpp +72 -6
- package/cpp/cipher/XSalsa20Cipher.hpp +25 -3
- package/cpp/cipher/XSalsa20Poly1305Cipher.cpp +21 -25
- package/cpp/dh/HybridDiffieHellman.cpp +29 -0
- package/cpp/ec/HybridEcKeyPair.cpp +35 -33
- package/cpp/ec/HybridEcKeyPair.hpp +3 -7
- package/cpp/ecdh/HybridECDH.cpp +23 -0
- package/cpp/ed25519/HybridEdKeyPair.cpp +73 -117
- package/cpp/ed25519/HybridEdKeyPair.hpp +5 -9
- package/cpp/hash/HybridHash.cpp +5 -7
- package/cpp/hkdf/HybridHkdf.cpp +6 -4
- package/cpp/hmac/HybridHmac.cpp +4 -6
- package/cpp/kmac/HybridKmac.cpp +4 -4
- package/cpp/mldsa/HybridMlDsaKeyPair.cpp +37 -49
- package/cpp/mlkem/HybridMlKemKeyPair.cpp +39 -43
- package/cpp/pbkdf2/HybridPbkdf2.cpp +7 -8
- package/cpp/rsa/HybridRsaKeyPair.cpp +5 -8
- package/cpp/rsa/HybridRsaKeyPair.hpp +4 -7
- package/cpp/scrypt/HybridScrypt.cpp +6 -4
- package/cpp/sign/HybridSignHandle.cpp +25 -68
- package/cpp/sign/HybridVerifyHandle.cpp +23 -60
- package/cpp/utils/HybridUtils.cpp +213 -111
- package/cpp/utils/HybridUtils.hpp +9 -2
- package/cpp/utils/QuickCryptoUtils.hpp +72 -0
- package/deps/simdutf/LICENSE-APACHE +201 -0
- package/deps/simdutf/LICENSE-MIT +18 -0
- package/deps/simdutf/README.md +2782 -0
- package/deps/simdutf/include/simdutf/avx512.h +79 -0
- package/deps/simdutf/include/simdutf/base64_implementation.h +158 -0
- package/deps/simdutf/include/simdutf/base64_tables.h +887 -0
- package/deps/simdutf/include/simdutf/common_defs.h +186 -0
- package/deps/simdutf/include/simdutf/compiler_check.h +50 -0
- package/deps/simdutf/include/simdutf/constexpr_ptr.h +138 -0
- package/deps/simdutf/include/simdutf/encoding_types.h +189 -0
- package/deps/simdutf/include/simdutf/error.h +126 -0
- package/deps/simdutf/include/simdutf/implementation.h +7081 -0
- package/deps/simdutf/include/simdutf/internal/isadetection.h +325 -0
- package/deps/simdutf/include/simdutf/portability.h +285 -0
- package/deps/simdutf/include/simdutf/scalar/ascii.h +86 -0
- package/deps/simdutf/include/simdutf/scalar/atomic_util.h +105 -0
- package/deps/simdutf/include/simdutf/scalar/base64.h +911 -0
- package/deps/simdutf/include/simdutf/scalar/latin1.h +26 -0
- package/deps/simdutf/include/simdutf/scalar/latin1_to_utf16/latin1_to_utf16.h +52 -0
- package/deps/simdutf/include/simdutf/scalar/latin1_to_utf32/latin1_to_utf32.h +27 -0
- package/deps/simdutf/include/simdutf/scalar/latin1_to_utf8/latin1_to_utf8.h +191 -0
- package/deps/simdutf/include/simdutf/scalar/swap_bytes.h +35 -0
- package/deps/simdutf/include/simdutf/scalar/utf16.h +226 -0
- package/deps/simdutf/include/simdutf/scalar/utf16_to_latin1/utf16_to_latin1.h +108 -0
- package/deps/simdutf/include/simdutf/scalar/utf16_to_latin1/valid_utf16_to_latin1.h +40 -0
- package/deps/simdutf/include/simdutf/scalar/utf16_to_utf32/utf16_to_utf32.h +86 -0
- package/deps/simdutf/include/simdutf/scalar/utf16_to_utf32/valid_utf16_to_utf32.h +44 -0
- package/deps/simdutf/include/simdutf/scalar/utf16_to_utf8/utf16_to_utf8.h +295 -0
- package/deps/simdutf/include/simdutf/scalar/utf16_to_utf8/valid_utf16_to_utf8.h +91 -0
- package/deps/simdutf/include/simdutf/scalar/utf32.h +82 -0
- package/deps/simdutf/include/simdutf/scalar/utf32_to_latin1/utf32_to_latin1.h +68 -0
- package/deps/simdutf/include/simdutf/scalar/utf32_to_latin1/valid_utf32_to_latin1.h +67 -0
- package/deps/simdutf/include/simdutf/scalar/utf32_to_utf16/utf32_to_utf16.h +84 -0
- package/deps/simdutf/include/simdutf/scalar/utf32_to_utf16/valid_utf32_to_utf16.h +44 -0
- package/deps/simdutf/include/simdutf/scalar/utf32_to_utf8/utf32_to_utf8.h +142 -0
- package/deps/simdutf/include/simdutf/scalar/utf32_to_utf8/valid_utf32_to_utf8.h +72 -0
- package/deps/simdutf/include/simdutf/scalar/utf8.h +326 -0
- package/deps/simdutf/include/simdutf/scalar/utf8_to_latin1/utf8_to_latin1.h +225 -0
- package/deps/simdutf/include/simdutf/scalar/utf8_to_latin1/valid_utf8_to_latin1.h +87 -0
- package/deps/simdutf/include/simdutf/scalar/utf8_to_utf16/utf8_to_utf16.h +342 -0
- package/deps/simdutf/include/simdutf/scalar/utf8_to_utf16/valid_utf8_to_utf16.h +106 -0
- package/deps/simdutf/include/simdutf/scalar/utf8_to_utf32/utf8_to_utf32.h +299 -0
- package/deps/simdutf/include/simdutf/scalar/utf8_to_utf32/valid_utf8_to_utf32.h +83 -0
- package/deps/simdutf/include/simdutf/simdutf_version.h +26 -0
- package/deps/simdutf/include/simdutf.h +26 -0
- package/deps/simdutf/include/simdutf_c.h +342 -0
- package/deps/simdutf/src/arm64/arm_base64.cpp +791 -0
- package/deps/simdutf/src/arm64/arm_convert_latin1_to_utf16.cpp +24 -0
- package/deps/simdutf/src/arm64/arm_convert_latin1_to_utf32.cpp +24 -0
- package/deps/simdutf/src/arm64/arm_convert_latin1_to_utf8.cpp +70 -0
- package/deps/simdutf/src/arm64/arm_convert_utf16_to_latin1.cpp +61 -0
- package/deps/simdutf/src/arm64/arm_convert_utf16_to_utf32.cpp +185 -0
- package/deps/simdutf/src/arm64/arm_convert_utf16_to_utf8.cpp +780 -0
- package/deps/simdutf/src/arm64/arm_convert_utf32_to_latin1.cpp +60 -0
- package/deps/simdutf/src/arm64/arm_convert_utf32_to_utf16.cpp +208 -0
- package/deps/simdutf/src/arm64/arm_convert_utf32_to_utf8.cpp +505 -0
- package/deps/simdutf/src/arm64/arm_convert_utf8_to_latin1.cpp +69 -0
- package/deps/simdutf/src/arm64/arm_convert_utf8_to_utf16.cpp +313 -0
- package/deps/simdutf/src/arm64/arm_convert_utf8_to_utf32.cpp +179 -0
- package/deps/simdutf/src/arm64/arm_find.cpp +199 -0
- package/deps/simdutf/src/arm64/arm_utf16fix.cpp +185 -0
- package/deps/simdutf/src/arm64/arm_validate_utf16.cpp +165 -0
- package/deps/simdutf/src/arm64/arm_validate_utf32le.cpp +65 -0
- package/deps/simdutf/src/arm64/implementation.cpp +1442 -0
- package/deps/simdutf/src/encoding_types.cpp +67 -0
- package/deps/simdutf/src/error.cpp +3 -0
- package/deps/simdutf/src/fallback/implementation.cpp +589 -0
- package/deps/simdutf/src/generic/ascii_validation.h +50 -0
- package/deps/simdutf/src/generic/base64.h +233 -0
- package/deps/simdutf/src/generic/base64lengths.h +63 -0
- package/deps/simdutf/src/generic/buf_block_reader.h +109 -0
- package/deps/simdutf/src/generic/find.h +75 -0
- package/deps/simdutf/src/generic/utf16/change_endianness.h +24 -0
- package/deps/simdutf/src/generic/utf16/count_code_points_bytemask.h +58 -0
- package/deps/simdutf/src/generic/utf16/to_well_formed.h +93 -0
- package/deps/simdutf/src/generic/utf16/utf32_length_from_utf16.h +15 -0
- package/deps/simdutf/src/generic/utf16/utf8_length_from_utf16.h +35 -0
- package/deps/simdutf/src/generic/utf16/utf8_length_from_utf16_bytemask.h +199 -0
- package/deps/simdutf/src/generic/utf16.h +73 -0
- package/deps/simdutf/src/generic/utf32.h +136 -0
- package/deps/simdutf/src/generic/utf8/utf16_length_from_utf8_bytemask.h +53 -0
- package/deps/simdutf/src/generic/utf8.h +92 -0
- package/deps/simdutf/src/generic/utf8_to_latin1/utf8_to_latin1.h +316 -0
- package/deps/simdutf/src/generic/utf8_to_latin1/valid_utf8_to_latin1.h +78 -0
- package/deps/simdutf/src/generic/utf8_to_utf16/utf8_to_utf16.h +332 -0
- package/deps/simdutf/src/generic/utf8_to_utf16/valid_utf8_to_utf16.h +74 -0
- package/deps/simdutf/src/generic/utf8_to_utf32/utf8_to_utf32.h +318 -0
- package/deps/simdutf/src/generic/utf8_to_utf32/valid_utf8_to_utf32.h +42 -0
- package/deps/simdutf/src/generic/utf8_validation/utf8_lookup4_algorithm.h +223 -0
- package/deps/simdutf/src/generic/utf8_validation/utf8_validator.h +84 -0
- package/deps/simdutf/src/generic/validate_utf16.h +164 -0
- package/deps/simdutf/src/generic/validate_utf32.h +99 -0
- package/deps/simdutf/src/haswell/avx2_base64.cpp +837 -0
- package/deps/simdutf/src/haswell/avx2_convert_latin1_to_utf16.cpp +28 -0
- package/deps/simdutf/src/haswell/avx2_convert_latin1_to_utf32.cpp +20 -0
- package/deps/simdutf/src/haswell/avx2_convert_latin1_to_utf8.cpp +83 -0
- package/deps/simdutf/src/haswell/avx2_convert_utf16_to_latin1.cpp +83 -0
- package/deps/simdutf/src/haswell/avx2_convert_utf16_to_utf32.cpp +210 -0
- package/deps/simdutf/src/haswell/avx2_convert_utf16_to_utf8.cpp +602 -0
- package/deps/simdutf/src/haswell/avx2_convert_utf32_to_latin1.cpp +116 -0
- package/deps/simdutf/src/haswell/avx2_convert_utf32_to_utf16.cpp +164 -0
- package/deps/simdutf/src/haswell/avx2_convert_utf32_to_utf8.cpp +569 -0
- package/deps/simdutf/src/haswell/avx2_convert_utf8_to_latin1.cpp +60 -0
- package/deps/simdutf/src/haswell/avx2_convert_utf8_to_utf16.cpp +195 -0
- package/deps/simdutf/src/haswell/avx2_convert_utf8_to_utf32.cpp +135 -0
- package/deps/simdutf/src/haswell/avx2_utf16fix.cpp +173 -0
- package/deps/simdutf/src/haswell/avx2_validate_utf16.cpp +17 -0
- package/deps/simdutf/src/haswell/implementation.cpp +1447 -0
- package/deps/simdutf/src/icelake/icelake_ascii_validation.inl.cpp +19 -0
- package/deps/simdutf/src/icelake/icelake_base64.inl.cpp +630 -0
- package/deps/simdutf/src/icelake/icelake_common.inl.cpp +37 -0
- package/deps/simdutf/src/icelake/icelake_convert_latin1_to_utf16.inl.cpp +36 -0
- package/deps/simdutf/src/icelake/icelake_convert_latin1_to_utf32.inl.cpp +23 -0
- package/deps/simdutf/src/icelake/icelake_convert_latin1_to_utf8.inl.cpp +107 -0
- package/deps/simdutf/src/icelake/icelake_convert_utf16_to_latin1.inl.cpp +103 -0
- package/deps/simdutf/src/icelake/icelake_convert_utf16_to_utf32.inl.cpp +136 -0
- package/deps/simdutf/src/icelake/icelake_convert_utf16_to_utf8.inl.cpp +206 -0
- package/deps/simdutf/src/icelake/icelake_convert_utf32_to_latin1.inl.cpp +74 -0
- package/deps/simdutf/src/icelake/icelake_convert_utf32_to_utf16.inl.cpp +338 -0
- package/deps/simdutf/src/icelake/icelake_convert_utf32_to_utf8.inl.cpp +574 -0
- package/deps/simdutf/src/icelake/icelake_convert_utf8_to_latin1.inl.cpp +104 -0
- package/deps/simdutf/src/icelake/icelake_convert_utf8_to_utf16.inl.cpp +75 -0
- package/deps/simdutf/src/icelake/icelake_convert_valid_utf8_to_latin1.inl.cpp +69 -0
- package/deps/simdutf/src/icelake/icelake_find.inl.cpp +146 -0
- package/deps/simdutf/src/icelake/icelake_from_utf8.inl.cpp +266 -0
- package/deps/simdutf/src/icelake/icelake_from_valid_utf8.inl.cpp +136 -0
- package/deps/simdutf/src/icelake/icelake_macros.inl.cpp +143 -0
- package/deps/simdutf/src/icelake/icelake_utf16fix.cpp +138 -0
- package/deps/simdutf/src/icelake/icelake_utf32_validation.inl.cpp +63 -0
- package/deps/simdutf/src/icelake/icelake_utf8_common.inl.cpp +753 -0
- package/deps/simdutf/src/icelake/icelake_utf8_length_from_utf16.inl.cpp +269 -0
- package/deps/simdutf/src/icelake/icelake_utf8_validation.inl.cpp +116 -0
- package/deps/simdutf/src/icelake/implementation.cpp +1903 -0
- package/deps/simdutf/src/implementation.cpp +2526 -0
- package/deps/simdutf/src/lasx/implementation.cpp +1531 -0
- package/deps/simdutf/src/lasx/lasx_base64.cpp +695 -0
- package/deps/simdutf/src/lasx/lasx_convert_latin1_to_utf16.cpp +76 -0
- package/deps/simdutf/src/lasx/lasx_convert_latin1_to_utf32.cpp +55 -0
- package/deps/simdutf/src/lasx/lasx_convert_latin1_to_utf8.cpp +65 -0
- package/deps/simdutf/src/lasx/lasx_convert_utf16_to_latin1.cpp +64 -0
- package/deps/simdutf/src/lasx/lasx_convert_utf16_to_utf32.cpp +183 -0
- package/deps/simdutf/src/lasx/lasx_convert_utf16_to_utf8.cpp +550 -0
- package/deps/simdutf/src/lasx/lasx_convert_utf32_to_latin1.cpp +73 -0
- package/deps/simdutf/src/lasx/lasx_convert_utf32_to_utf16.cpp +218 -0
- package/deps/simdutf/src/lasx/lasx_convert_utf32_to_utf8.cpp +589 -0
- package/deps/simdutf/src/lasx/lasx_convert_utf8_to_latin1.cpp +72 -0
- package/deps/simdutf/src/lasx/lasx_convert_utf8_to_utf16.cpp +296 -0
- package/deps/simdutf/src/lasx/lasx_convert_utf8_to_utf32.cpp +190 -0
- package/deps/simdutf/src/lasx/lasx_find.cpp +64 -0
- package/deps/simdutf/src/lasx/lasx_validate_utf16.cpp +13 -0
- package/deps/simdutf/src/lasx/lasx_validate_utf32le.cpp +84 -0
- package/deps/simdutf/src/lsx/implementation.cpp +1417 -0
- package/deps/simdutf/src/lsx/lsx_base64.cpp +675 -0
- package/deps/simdutf/src/lsx/lsx_convert_latin1_to_utf16.cpp +39 -0
- package/deps/simdutf/src/lsx/lsx_convert_latin1_to_utf32.cpp +27 -0
- package/deps/simdutf/src/lsx/lsx_convert_latin1_to_utf8.cpp +56 -0
- package/deps/simdutf/src/lsx/lsx_convert_utf16_to_latin1.cpp +64 -0
- package/deps/simdutf/src/lsx/lsx_convert_utf16_to_utf32.cpp +133 -0
- package/deps/simdutf/src/lsx/lsx_convert_utf16_to_utf8.cpp +518 -0
- package/deps/simdutf/src/lsx/lsx_convert_utf32_to_latin1.cpp +66 -0
- package/deps/simdutf/src/lsx/lsx_convert_utf32_to_utf16.cpp +155 -0
- package/deps/simdutf/src/lsx/lsx_convert_utf32_to_utf8.cpp +459 -0
- package/deps/simdutf/src/lsx/lsx_convert_utf8_to_latin1.cpp +75 -0
- package/deps/simdutf/src/lsx/lsx_convert_utf8_to_utf16.cpp +291 -0
- package/deps/simdutf/src/lsx/lsx_convert_utf8_to_utf32.cpp +179 -0
- package/deps/simdutf/src/lsx/lsx_find.cpp +60 -0
- package/deps/simdutf/src/lsx/lsx_validate_utf16.cpp +13 -0
- package/deps/simdutf/src/lsx/lsx_validate_utf32le.cpp +68 -0
- package/deps/simdutf/src/ppc64/implementation.cpp +992 -0
- package/deps/simdutf/src/ppc64/ppc64_base64.cpp +480 -0
- package/deps/simdutf/src/ppc64/ppc64_base64_internal_tests.cpp +401 -0
- package/deps/simdutf/src/ppc64/ppc64_convert_latin1_to_utf16.cpp +12 -0
- package/deps/simdutf/src/ppc64/ppc64_convert_latin1_to_utf32.cpp +12 -0
- package/deps/simdutf/src/ppc64/ppc64_convert_latin1_to_utf8.cpp +149 -0
- package/deps/simdutf/src/ppc64/ppc64_convert_utf16_to_latin1.cpp +67 -0
- package/deps/simdutf/src/ppc64/ppc64_convert_utf16_to_utf32.cpp +87 -0
- package/deps/simdutf/src/ppc64/ppc64_convert_utf16_to_utf8.cpp +296 -0
- package/deps/simdutf/src/ppc64/ppc64_convert_utf32_to_latin1.cpp +57 -0
- package/deps/simdutf/src/ppc64/ppc64_convert_utf32_to_utf16.cpp +117 -0
- package/deps/simdutf/src/ppc64/ppc64_convert_utf32_to_utf8.cpp +166 -0
- package/deps/simdutf/src/ppc64/ppc64_convert_utf8_to_latin1.cpp +69 -0
- package/deps/simdutf/src/ppc64/ppc64_convert_utf8_to_utf16.cpp +211 -0
- package/deps/simdutf/src/ppc64/ppc64_convert_utf8_to_utf32.cpp +153 -0
- package/deps/simdutf/src/ppc64/ppc64_utf16_to_utf8_tables.h +1011 -0
- package/deps/simdutf/src/ppc64/ppc64_utf8_length_from_latin1.cpp +37 -0
- package/deps/simdutf/src/ppc64/ppc64_validate_utf16.cpp +19 -0
- package/deps/simdutf/src/ppc64/templates.cpp +91 -0
- package/deps/simdutf/src/rvv/implementation.cpp +138 -0
- package/deps/simdutf/src/rvv/rvv_find.cpp +27 -0
- package/deps/simdutf/src/rvv/rvv_helpers.inl.cpp +23 -0
- package/deps/simdutf/src/rvv/rvv_latin1_to.inl.cpp +71 -0
- package/deps/simdutf/src/rvv/rvv_length_from.inl.cpp +164 -0
- package/deps/simdutf/src/rvv/rvv_utf16_to.inl.cpp +399 -0
- package/deps/simdutf/src/rvv/rvv_utf16fix.cpp +110 -0
- package/deps/simdutf/src/rvv/rvv_utf32_to.inl.cpp +307 -0
- package/deps/simdutf/src/rvv/rvv_utf8_to.inl.cpp +435 -0
- package/deps/simdutf/src/rvv/rvv_validate.inl.cpp +275 -0
- package/deps/simdutf/src/simdutf/arm64/begin.h +2 -0
- package/deps/simdutf/src/simdutf/arm64/bitmanipulation.h +34 -0
- package/deps/simdutf/src/simdutf/arm64/end.h +2 -0
- package/deps/simdutf/src/simdutf/arm64/implementation.h +307 -0
- package/deps/simdutf/src/simdutf/arm64/intrinsics.h +10 -0
- package/deps/simdutf/src/simdutf/arm64/simd.h +547 -0
- package/deps/simdutf/src/simdutf/arm64/simd16-inl.h +403 -0
- package/deps/simdutf/src/simdutf/arm64/simd32-inl.h +129 -0
- package/deps/simdutf/src/simdutf/arm64/simd64-inl.h +28 -0
- package/deps/simdutf/src/simdutf/arm64.h +43 -0
- package/deps/simdutf/src/simdutf/fallback/begin.h +1 -0
- package/deps/simdutf/src/simdutf/fallback/bitmanipulation.h +13 -0
- package/deps/simdutf/src/simdutf/fallback/end.h +1 -0
- package/deps/simdutf/src/simdutf/fallback/implementation.h +331 -0
- package/deps/simdutf/src/simdutf/fallback.h +42 -0
- package/deps/simdutf/src/simdutf/haswell/begin.h +15 -0
- package/deps/simdutf/src/simdutf/haswell/bitmanipulation.h +35 -0
- package/deps/simdutf/src/simdutf/haswell/end.h +13 -0
- package/deps/simdutf/src/simdutf/haswell/implementation.h +338 -0
- package/deps/simdutf/src/simdutf/haswell/intrinsics.h +67 -0
- package/deps/simdutf/src/simdutf/haswell/simd.h +363 -0
- package/deps/simdutf/src/simdutf/haswell/simd16-inl.h +261 -0
- package/deps/simdutf/src/simdutf/haswell/simd32-inl.h +111 -0
- package/deps/simdutf/src/simdutf/haswell/simd64-inl.h +34 -0
- package/deps/simdutf/src/simdutf/haswell.h +63 -0
- package/deps/simdutf/src/simdutf/icelake/begin.h +14 -0
- package/deps/simdutf/src/simdutf/icelake/bitmanipulation.h +44 -0
- package/deps/simdutf/src/simdutf/icelake/end.h +12 -0
- package/deps/simdutf/src/simdutf/icelake/implementation.h +346 -0
- package/deps/simdutf/src/simdutf/icelake/intrinsics.h +138 -0
- package/deps/simdutf/src/simdutf/icelake/simd.h +17 -0
- package/deps/simdutf/src/simdutf/icelake/simd16-inl.h +90 -0
- package/deps/simdutf/src/simdutf/icelake/simd32-inl.h +47 -0
- package/deps/simdutf/src/simdutf/icelake.h +81 -0
- package/deps/simdutf/src/simdutf/lasx/begin.h +8 -0
- package/deps/simdutf/src/simdutf/lasx/bitmanipulation.h +25 -0
- package/deps/simdutf/src/simdutf/lasx/end.h +8 -0
- package/deps/simdutf/src/simdutf/lasx/implementation.h +310 -0
- package/deps/simdutf/src/simdutf/lasx/intrinsics.h +319 -0
- package/deps/simdutf/src/simdutf/lasx/simd.h +551 -0
- package/deps/simdutf/src/simdutf/lasx/simd16-inl.h +234 -0
- package/deps/simdutf/src/simdutf/lasx/simd32-inl.h +74 -0
- package/deps/simdutf/src/simdutf/lasx/simd64-inl.h +52 -0
- package/deps/simdutf/src/simdutf/lasx.h +49 -0
- package/deps/simdutf/src/simdutf/lsx/begin.h +2 -0
- package/deps/simdutf/src/simdutf/lsx/bitmanipulation.h +25 -0
- package/deps/simdutf/src/simdutf/lsx/end.h +2 -0
- package/deps/simdutf/src/simdutf/lsx/implementation.h +309 -0
- package/deps/simdutf/src/simdutf/lsx/intrinsics.h +196 -0
- package/deps/simdutf/src/simdutf/lsx/simd.h +421 -0
- package/deps/simdutf/src/simdutf/lsx/simd16-inl.h +242 -0
- package/deps/simdutf/src/simdutf/lsx/simd32-inl.h +69 -0
- package/deps/simdutf/src/simdutf/lsx/simd64-inl.h +50 -0
- package/deps/simdutf/src/simdutf/lsx.h +52 -0
- package/deps/simdutf/src/simdutf/ppc64/begin.h +1 -0
- package/deps/simdutf/src/simdutf/ppc64/bitmanipulation.h +29 -0
- package/deps/simdutf/src/simdutf/ppc64/end.h +1 -0
- package/deps/simdutf/src/simdutf/ppc64/implementation.h +348 -0
- package/deps/simdutf/src/simdutf/ppc64/intrinsics.h +19 -0
- package/deps/simdutf/src/simdutf/ppc64/simd.h +177 -0
- package/deps/simdutf/src/simdutf/ppc64/simd16-inl.h +327 -0
- package/deps/simdutf/src/simdutf/ppc64/simd32-inl.h +247 -0
- package/deps/simdutf/src/simdutf/ppc64/simd8-inl.h +618 -0
- package/deps/simdutf/src/simdutf/ppc64.h +40 -0
- package/deps/simdutf/src/simdutf/rvv/begin.h +7 -0
- package/deps/simdutf/src/simdutf/rvv/end.h +7 -0
- package/deps/simdutf/src/simdutf/rvv/implementation.h +321 -0
- package/deps/simdutf/src/simdutf/rvv/intrinsics.h +131 -0
- package/deps/simdutf/src/simdutf/rvv.h +41 -0
- package/deps/simdutf/src/simdutf/westmere/begin.h +8 -0
- package/deps/simdutf/src/simdutf/westmere/bitmanipulation.h +37 -0
- package/deps/simdutf/src/simdutf/westmere/end.h +8 -0
- package/deps/simdutf/src/simdutf/westmere/implementation.h +338 -0
- package/deps/simdutf/src/simdutf/westmere/intrinsics.h +38 -0
- package/deps/simdutf/src/simdutf/westmere/simd.h +379 -0
- package/deps/simdutf/src/simdutf/westmere/simd16-inl.h +242 -0
- package/deps/simdutf/src/simdutf/westmere/simd32-inl.h +151 -0
- package/deps/simdutf/src/simdutf/westmere/simd64-inl.h +33 -0
- package/deps/simdutf/src/simdutf/westmere.h +59 -0
- package/deps/simdutf/src/simdutf.cpp +152 -0
- package/deps/simdutf/src/simdutf_c.cpp +525 -0
- package/deps/simdutf/src/tables/utf16_to_utf8_tables.h +768 -0
- package/deps/simdutf/src/tables/utf32_to_utf16_tables.h +53 -0
- package/deps/simdutf/src/tables/utf8_to_utf16_tables.h +826 -0
- package/deps/simdutf/src/westmere/implementation.cpp +1479 -0
- package/deps/simdutf/src/westmere/internal/loader.cpp +7 -0
- package/deps/simdutf/src/westmere/internal/write_v_u16_11bits_to_utf8.cpp +66 -0
- package/deps/simdutf/src/westmere/sse_base64.cpp +672 -0
- package/deps/simdutf/src/westmere/sse_convert_latin1_to_utf16.cpp +21 -0
- package/deps/simdutf/src/westmere/sse_convert_latin1_to_utf32.cpp +31 -0
- package/deps/simdutf/src/westmere/sse_convert_latin1_to_utf8.cpp +71 -0
- package/deps/simdutf/src/westmere/sse_convert_utf16_to_latin1.cpp +70 -0
- package/deps/simdutf/src/westmere/sse_convert_utf16_to_utf32.cpp +206 -0
- package/deps/simdutf/src/westmere/sse_convert_utf16_to_utf8.cpp +504 -0
- package/deps/simdutf/src/westmere/sse_convert_utf32_to_latin1.cpp +82 -0
- package/deps/simdutf/src/westmere/sse_convert_utf32_to_utf16.cpp +209 -0
- package/deps/simdutf/src/westmere/sse_convert_utf32_to_utf8.cpp +589 -0
- package/deps/simdutf/src/westmere/sse_convert_utf8_to_latin1.cpp +58 -0
- package/deps/simdutf/src/westmere/sse_convert_utf8_to_utf16.cpp +197 -0
- package/deps/simdutf/src/westmere/sse_convert_utf8_to_utf32.cpp +141 -0
- package/deps/simdutf/src/westmere/sse_utf16fix.cpp +82 -0
- package/deps/simdutf/src/westmere/sse_validate_utf16.cpp +17 -0
- package/lib/commonjs/argon2.js +51 -2
- package/lib/commonjs/argon2.js.map +1 -1
- package/lib/commonjs/cipher.js +109 -11
- package/lib/commonjs/cipher.js.map +1 -1
- package/lib/commonjs/dsa.js +8 -2
- package/lib/commonjs/dsa.js.map +1 -1
- package/lib/commonjs/hash.js +15 -5
- package/lib/commonjs/hash.js.map +1 -1
- package/lib/commonjs/hkdf.js +33 -6
- package/lib/commonjs/hkdf.js.map +1 -1
- package/lib/commonjs/hmac.js +15 -5
- package/lib/commonjs/hmac.js.map +1 -1
- package/lib/commonjs/keys/publicCipher.js +10 -4
- package/lib/commonjs/keys/publicCipher.js.map +1 -1
- package/lib/commonjs/random.js +11 -2
- package/lib/commonjs/random.js.map +1 -1
- package/lib/commonjs/rsa.js +12 -5
- package/lib/commonjs/rsa.js.map +1 -1
- package/lib/commonjs/scrypt.js +47 -6
- package/lib/commonjs/scrypt.js.map +1 -1
- package/lib/commonjs/subtle.js +76 -5
- package/lib/commonjs/subtle.js.map +1 -1
- package/lib/commonjs/utils/cipher.js +18 -7
- package/lib/commonjs/utils/cipher.js.map +1 -1
- package/lib/commonjs/utils/conversion.js +33 -9
- package/lib/commonjs/utils/conversion.js.map +1 -1
- package/lib/commonjs/utils/timingSafeEqual.js +7 -2
- package/lib/commonjs/utils/timingSafeEqual.js.map +1 -1
- package/lib/commonjs/x509certificate.js +6 -6
- package/lib/commonjs/x509certificate.js.map +1 -1
- package/lib/module/argon2.js +51 -2
- package/lib/module/argon2.js.map +1 -1
- package/lib/module/cipher.js +109 -11
- package/lib/module/cipher.js.map +1 -1
- package/lib/module/dsa.js +8 -2
- package/lib/module/dsa.js.map +1 -1
- package/lib/module/hash.js +15 -5
- package/lib/module/hash.js.map +1 -1
- package/lib/module/hkdf.js +33 -6
- package/lib/module/hkdf.js.map +1 -1
- package/lib/module/hmac.js +15 -5
- package/lib/module/hmac.js.map +1 -1
- package/lib/module/keys/publicCipher.js +10 -4
- package/lib/module/keys/publicCipher.js.map +1 -1
- package/lib/module/random.js +11 -2
- package/lib/module/random.js.map +1 -1
- package/lib/module/rsa.js +11 -4
- package/lib/module/rsa.js.map +1 -1
- package/lib/module/scrypt.js +47 -6
- package/lib/module/scrypt.js.map +1 -1
- package/lib/module/subtle.js +76 -5
- package/lib/module/subtle.js.map +1 -1
- package/lib/module/utils/cipher.js +18 -7
- package/lib/module/utils/cipher.js.map +1 -1
- package/lib/module/utils/conversion.js +33 -9
- package/lib/module/utils/conversion.js.map +1 -1
- package/lib/module/utils/timingSafeEqual.js +8 -3
- package/lib/module/utils/timingSafeEqual.js.map +1 -1
- package/lib/module/x509certificate.js +6 -6
- package/lib/module/x509certificate.js.map +1 -1
- package/lib/typescript/argon2.d.ts.map +1 -1
- package/lib/typescript/cipher.d.ts +2 -2
- package/lib/typescript/cipher.d.ts.map +1 -1
- package/lib/typescript/dsa.d.ts.map +1 -1
- package/lib/typescript/hash.d.ts +2 -2
- package/lib/typescript/hash.d.ts.map +1 -1
- package/lib/typescript/hkdf.d.ts.map +1 -1
- package/lib/typescript/hmac.d.ts +2 -2
- package/lib/typescript/hmac.d.ts.map +1 -1
- package/lib/typescript/index.d.ts +1 -1
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/keys/publicCipher.d.ts.map +1 -1
- package/lib/typescript/random.d.ts.map +1 -1
- package/lib/typescript/rsa.d.ts.map +1 -1
- package/lib/typescript/scrypt.d.ts.map +1 -1
- package/lib/typescript/specs/utils.nitro.d.ts +0 -2
- package/lib/typescript/specs/utils.nitro.d.ts.map +1 -1
- package/lib/typescript/subtle.d.ts.map +1 -1
- package/lib/typescript/utils/cipher.d.ts +13 -1
- package/lib/typescript/utils/cipher.d.ts.map +1 -1
- package/lib/typescript/utils/conversion.d.ts +9 -6
- package/lib/typescript/utils/conversion.d.ts.map +1 -1
- package/lib/typescript/utils/timingSafeEqual.d.ts.map +1 -1
- package/lib/typescript/x509certificate.d.ts.map +1 -1
- package/nitrogen/generated/shared/c++/HybridUtilsSpec.cpp +0 -2
- package/nitrogen/generated/shared/c++/HybridUtilsSpec.hpp +0 -3
- package/package.json +38 -6
- package/src/argon2.ts +80 -2
- package/src/cipher.ts +139 -15
- package/src/dsa.ts +11 -2
- package/src/hash.ts +17 -7
- package/src/hkdf.ts +44 -6
- package/src/hmac.ts +17 -7
- package/src/keys/publicCipher.ts +10 -4
- package/src/random.ts +11 -2
- package/src/rsa.ts +18 -4
- package/src/scrypt.ts +73 -6
- package/src/specs/utils.nitro.ts +0 -2
- package/src/subtle.ts +90 -8
- package/src/utils/cipher.ts +30 -8
- package/src/utils/conversion.ts +58 -20
- package/src/utils/timingSafeEqual.ts +8 -3
- package/src/x509certificate.ts +5 -6
- package/deps/blake3/.cargo/config.toml +0 -2
- package/deps/blake3/.git-blame-ignore-revs +0 -2
- package/deps/blake3/.github/workflows/build_b3sum.py +0 -38
- package/deps/blake3/.github/workflows/ci.yml +0 -491
- package/deps/blake3/.github/workflows/tag.yml +0 -43
- package/deps/blake3/.github/workflows/upload_github_release_asset.py +0 -73
- package/deps/blake3/CONTRIBUTING.md +0 -31
- package/deps/blake3/Cargo.toml +0 -135
- package/deps/blake3/b3sum/Cargo.lock +0 -513
- package/deps/blake3/b3sum/Cargo.toml +0 -26
- package/deps/blake3/b3sum/README.md +0 -72
- package/deps/blake3/b3sum/src/main.rs +0 -564
- package/deps/blake3/b3sum/src/unit_tests.rs +0 -235
- package/deps/blake3/b3sum/tests/cli_tests.rs +0 -680
- package/deps/blake3/b3sum/what_does_check_do.md +0 -176
- package/deps/blake3/benches/bench.rs +0 -623
- package/deps/blake3/build.rs +0 -389
- package/deps/blake3/c/CMakeLists.txt +0 -383
- package/deps/blake3/c/CMakePresets.json +0 -73
- package/deps/blake3/c/Makefile.testing +0 -82
- package/deps/blake3/c/blake3-config.cmake.in +0 -14
- package/deps/blake3/c/blake3_avx2.c +0 -326
- package/deps/blake3/c/blake3_avx2_x86-64_unix.S +0 -1815
- package/deps/blake3/c/blake3_avx2_x86-64_windows_gnu.S +0 -1817
- package/deps/blake3/c/blake3_avx2_x86-64_windows_msvc.asm +0 -1828
- package/deps/blake3/c/blake3_avx512.c +0 -1388
- package/deps/blake3/c/blake3_avx512_x86-64_unix.S +0 -4824
- package/deps/blake3/c/blake3_avx512_x86-64_windows_gnu.S +0 -2615
- package/deps/blake3/c/blake3_avx512_x86-64_windows_msvc.asm +0 -2634
- package/deps/blake3/c/blake3_c_rust_bindings/Cargo.toml +0 -32
- package/deps/blake3/c/blake3_c_rust_bindings/README.md +0 -4
- package/deps/blake3/c/blake3_c_rust_bindings/benches/bench.rs +0 -477
- package/deps/blake3/c/blake3_c_rust_bindings/build.rs +0 -253
- package/deps/blake3/c/blake3_c_rust_bindings/cross_test.sh +0 -31
- package/deps/blake3/c/blake3_c_rust_bindings/src/lib.rs +0 -333
- package/deps/blake3/c/blake3_c_rust_bindings/src/test.rs +0 -696
- package/deps/blake3/c/blake3_sse2.c +0 -566
- package/deps/blake3/c/blake3_sse2_x86-64_unix.S +0 -2291
- package/deps/blake3/c/blake3_sse2_x86-64_windows_gnu.S +0 -2332
- package/deps/blake3/c/blake3_sse2_x86-64_windows_msvc.asm +0 -2350
- package/deps/blake3/c/blake3_sse41.c +0 -560
- package/deps/blake3/c/blake3_sse41_x86-64_unix.S +0 -2028
- package/deps/blake3/c/blake3_sse41_x86-64_windows_gnu.S +0 -2069
- package/deps/blake3/c/blake3_sse41_x86-64_windows_msvc.asm +0 -2089
- package/deps/blake3/c/blake3_tbb.cpp +0 -37
- package/deps/blake3/c/dependencies/CMakeLists.txt +0 -3
- package/deps/blake3/c/dependencies/tbb/CMakeLists.txt +0 -28
- package/deps/blake3/c/example.c +0 -36
- package/deps/blake3/c/example_tbb.c +0 -57
- package/deps/blake3/c/libblake3.pc.in +0 -12
- package/deps/blake3/c/main.c +0 -166
- package/deps/blake3/c/test.py +0 -97
- package/deps/blake3/media/B3.svg +0 -70
- package/deps/blake3/media/BLAKE3.svg +0 -85
- package/deps/blake3/media/speed.svg +0 -1474
- package/deps/blake3/reference_impl/Cargo.toml +0 -8
- package/deps/blake3/reference_impl/README.md +0 -14
- package/deps/blake3/reference_impl/reference_impl.rs +0 -374
- package/deps/blake3/src/ffi_avx2.rs +0 -65
- package/deps/blake3/src/ffi_avx512.rs +0 -169
- package/deps/blake3/src/ffi_neon.rs +0 -82
- package/deps/blake3/src/ffi_sse2.rs +0 -126
- package/deps/blake3/src/ffi_sse41.rs +0 -126
- package/deps/blake3/src/guts.rs +0 -60
- package/deps/blake3/src/hazmat.rs +0 -704
- package/deps/blake3/src/io.rs +0 -64
- package/deps/blake3/src/join.rs +0 -92
- package/deps/blake3/src/lib.rs +0 -1835
- package/deps/blake3/src/platform.rs +0 -587
- package/deps/blake3/src/portable.rs +0 -198
- package/deps/blake3/src/rust_avx2.rs +0 -474
- package/deps/blake3/src/rust_sse2.rs +0 -775
- package/deps/blake3/src/rust_sse41.rs +0 -766
- package/deps/blake3/src/test.rs +0 -1049
- package/deps/blake3/src/traits.rs +0 -227
- package/deps/blake3/src/wasm32_simd.rs +0 -794
- package/deps/blake3/test_vectors/Cargo.toml +0 -19
- package/deps/blake3/test_vectors/cross_test.sh +0 -25
- package/deps/blake3/test_vectors/src/bin/generate.rs +0 -4
- package/deps/blake3/test_vectors/src/lib.rs +0 -350
- package/deps/blake3/test_vectors/test_vectors.json +0 -217
- package/deps/blake3/tools/compiler_version/Cargo.toml +0 -7
- package/deps/blake3/tools/compiler_version/build.rs +0 -6
- package/deps/blake3/tools/compiler_version/src/main.rs +0 -27
- package/deps/blake3/tools/instruction_set_support/Cargo.toml +0 -6
- package/deps/blake3/tools/instruction_set_support/src/main.rs +0 -10
- package/deps/blake3/tools/release.md +0 -16
- package/deps/ncrypto/.bazelignore +0 -4
- package/deps/ncrypto/.bazelrc +0 -1
- package/deps/ncrypto/.bazelversion +0 -1
- package/deps/ncrypto/.clang-format +0 -111
- package/deps/ncrypto/.github/workflows/bazel.yml +0 -58
- package/deps/ncrypto/.github/workflows/commitlint.yml +0 -16
- package/deps/ncrypto/.github/workflows/linter.yml +0 -38
- package/deps/ncrypto/.github/workflows/macos.yml +0 -43
- package/deps/ncrypto/.github/workflows/release-please.yml +0 -16
- package/deps/ncrypto/.github/workflows/ubuntu.yml +0 -128
- package/deps/ncrypto/.github/workflows/visual-studio.yml +0 -49
- package/deps/ncrypto/.python-version +0 -1
- package/deps/ncrypto/.release-please-manifest.json +0 -3
- package/deps/ncrypto/BUILD.bazel +0 -44
- package/deps/ncrypto/CHANGELOG.md +0 -37
- package/deps/ncrypto/CMakeLists.txt +0 -79
- package/deps/ncrypto/MODULE.bazel +0 -16
- package/deps/ncrypto/MODULE.bazel.lock +0 -461
- package/deps/ncrypto/cmake/CPM.cmake +0 -1225
- package/deps/ncrypto/cmake/ncrypto-flags.cmake +0 -17
- package/deps/ncrypto/ncrypto.pc.in +0 -10
- package/deps/ncrypto/patches/0001-Expose-libdecrepit-so-NodeJS-can-use-it-for-ncrypto.patch +0 -28
- package/deps/ncrypto/pyproject.toml +0 -38
- package/deps/ncrypto/release-please-config.json +0 -11
- package/deps/ncrypto/src/CMakeLists.txt +0 -40
- package/deps/ncrypto/tests/BUILD.bazel +0 -11
- package/deps/ncrypto/tests/CMakeLists.txt +0 -7
- package/deps/ncrypto/tests/basic.cpp +0 -856
- package/deps/ncrypto/tools/run-clang-format.sh +0 -42
- package/lib/tsconfig.tsbuildinfo +0 -1
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
template <typename T> struct simd32;
|
|
2
|
+
|
|
3
|
+
template <> struct simd32<uint32_t> {
|
|
4
|
+
__m128i value;
|
|
5
|
+
static const int SIZE = sizeof(value);
|
|
6
|
+
static const int ELEMENTS = SIZE / sizeof(uint32_t);
|
|
7
|
+
|
|
8
|
+
// constructors
|
|
9
|
+
simdutf_really_inline simd32(__m128i v) : value(v) {}
|
|
10
|
+
|
|
11
|
+
template <typename Ptr>
|
|
12
|
+
simdutf_really_inline simd32(Ptr *ptr) : value(__lsx_vld(ptr, 0)) {}
|
|
13
|
+
|
|
14
|
+
// in-place operators
|
|
15
|
+
simdutf_really_inline simd32 &operator-=(const simd32 other) {
|
|
16
|
+
value = __lsx_vsub_w(value, other.value);
|
|
17
|
+
return *this;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
// members
|
|
21
|
+
simdutf_really_inline uint64_t sum() const {
|
|
22
|
+
return uint64_t(__lsx_vpickve2gr_wu(value, 0)) +
|
|
23
|
+
uint64_t(__lsx_vpickve2gr_wu(value, 1)) +
|
|
24
|
+
uint64_t(__lsx_vpickve2gr_wu(value, 2)) +
|
|
25
|
+
uint64_t(__lsx_vpickve2gr_wu(value, 3));
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
// static members
|
|
29
|
+
static simdutf_really_inline simd32<uint32_t> splat(uint32_t x) {
|
|
30
|
+
return __lsx_vreplgr2vr_w(x);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
static simdutf_really_inline simd32<uint32_t> zero() {
|
|
34
|
+
return __lsx_vrepli_w(0);
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
// ------------------------------------------------------------
|
|
39
|
+
|
|
40
|
+
template <> struct simd32<bool> {
|
|
41
|
+
__m128i value;
|
|
42
|
+
static const int SIZE = sizeof(value);
|
|
43
|
+
|
|
44
|
+
// constructors
|
|
45
|
+
simdutf_really_inline simd32(__m128i v) : value(v) {}
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
// ------------------------------------------------------------
|
|
49
|
+
|
|
50
|
+
simdutf_really_inline simd32<uint32_t> operator&(const simd32<uint32_t> a,
|
|
51
|
+
const simd32<uint32_t> b) {
|
|
52
|
+
return __lsx_vor_v(a.value, b.value);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
simdutf_really_inline simd32<bool> operator<(const simd32<uint32_t> a,
|
|
56
|
+
const simd32<uint32_t> b) {
|
|
57
|
+
return __lsx_vslt_wu(a.value, b.value);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
simdutf_really_inline simd32<bool> operator>(const simd32<uint32_t> a,
|
|
61
|
+
const simd32<uint32_t> b) {
|
|
62
|
+
return __lsx_vslt_wu(b.value, a.value);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
// ------------------------------------------------------------
|
|
66
|
+
|
|
67
|
+
simdutf_really_inline simd32<uint32_t> as_vector_u32(const simd32<bool> v) {
|
|
68
|
+
return v.value;
|
|
69
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
template <typename T> struct simd64;
|
|
2
|
+
|
|
3
|
+
template <> struct simd64<uint64_t> {
|
|
4
|
+
__m128i value;
|
|
5
|
+
static const int SIZE = sizeof(value);
|
|
6
|
+
static const int ELEMENTS = SIZE / sizeof(uint64_t);
|
|
7
|
+
|
|
8
|
+
// constructors
|
|
9
|
+
simdutf_really_inline simd64(__m128i v) : value(v) {}
|
|
10
|
+
|
|
11
|
+
template <typename Ptr>
|
|
12
|
+
simdutf_really_inline simd64(Ptr *ptr) : value(__lsx_vld(ptr, 0)) {}
|
|
13
|
+
|
|
14
|
+
// in-place operators
|
|
15
|
+
simdutf_really_inline simd64 &operator+=(const simd64 other) {
|
|
16
|
+
value = __lsx_vadd_d(value, other.value);
|
|
17
|
+
return *this;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
// members
|
|
21
|
+
simdutf_really_inline uint64_t sum() const {
|
|
22
|
+
return uint64_t(__lsx_vpickve2gr_du(value, 0)) +
|
|
23
|
+
uint64_t(__lsx_vpickve2gr_du(value, 1));
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
// static members
|
|
27
|
+
static simdutf_really_inline simd64<uint64_t> zero() {
|
|
28
|
+
return __lsx_vrepli_d(0);
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
// ------------------------------------------------------------
|
|
33
|
+
|
|
34
|
+
template <> struct simd64<bool> {
|
|
35
|
+
__m128i value;
|
|
36
|
+
static const int SIZE = sizeof(value);
|
|
37
|
+
|
|
38
|
+
// constructors
|
|
39
|
+
simdutf_really_inline simd64(__m128i v) : value(v) {}
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
// ------------------------------------------------------------
|
|
43
|
+
|
|
44
|
+
simd64<uint64_t> sum_8bytes(const simd8<uint8_t> v) {
|
|
45
|
+
const auto sum_u16 = __lsx_vhaddw_hu_bu(v, v);
|
|
46
|
+
const auto sum_u32 = __lsx_vhaddw_wu_hu(sum_u16, sum_u16);
|
|
47
|
+
const auto sum_u64 = __lsx_vhaddw_du_wu(sum_u32, sum_u32);
|
|
48
|
+
|
|
49
|
+
return simd64<uint64_t>(sum_u64);
|
|
50
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
#ifndef SIMDUTF_LSX_H
|
|
2
|
+
#define SIMDUTF_LSX_H
|
|
3
|
+
|
|
4
|
+
#ifdef SIMDUTF_FALLBACK_H
|
|
5
|
+
#error "lsx.h must be included before fallback.h"
|
|
6
|
+
#endif
|
|
7
|
+
|
|
8
|
+
#ifndef SIMDUTF_CAN_ALWAYS_RUN_LASX
|
|
9
|
+
#error "lsx.h must be included after lasx.h"
|
|
10
|
+
#endif
|
|
11
|
+
|
|
12
|
+
#include "simdutf/portability.h"
|
|
13
|
+
|
|
14
|
+
#ifndef SIMDUTF_IMPLEMENTATION_LSX
|
|
15
|
+
#if SIMDUTF_CAN_ALWAYS_RUN_LASX
|
|
16
|
+
#define SIMDUTF_IMPLEMENTATION_LSX 0
|
|
17
|
+
#else
|
|
18
|
+
#define SIMDUTF_IMPLEMENTATION_LSX (SIMDUTF_IS_LSX)
|
|
19
|
+
#endif
|
|
20
|
+
#endif
|
|
21
|
+
#if SIMDUTF_IMPLEMENTATION_LSX && SIMDUTF_IS_LSX
|
|
22
|
+
#define SIMDUTF_CAN_ALWAYS_RUN_LSX 1
|
|
23
|
+
#else
|
|
24
|
+
#define SIMDUTF_CAN_ALWAYS_RUN_LSX 0
|
|
25
|
+
#endif
|
|
26
|
+
|
|
27
|
+
#define SIMDUTF_CAN_ALWAYS_RUN_FALLBACK (SIMDUTF_IMPLEMENTATION_FALLBACK)
|
|
28
|
+
#include "simdutf/internal/isadetection.h"
|
|
29
|
+
|
|
30
|
+
#if SIMDUTF_IMPLEMENTATION_LSX
|
|
31
|
+
|
|
32
|
+
namespace simdutf {
|
|
33
|
+
/**
|
|
34
|
+
* Implementation for LoongArch SX.
|
|
35
|
+
*/
|
|
36
|
+
namespace lsx {} // namespace lsx
|
|
37
|
+
} // namespace simdutf
|
|
38
|
+
|
|
39
|
+
#include "simdutf/lsx/implementation.h"
|
|
40
|
+
|
|
41
|
+
#include "simdutf/lsx/begin.h"
|
|
42
|
+
|
|
43
|
+
// Declarations
|
|
44
|
+
#include "simdutf/lsx/intrinsics.h"
|
|
45
|
+
#include "simdutf/lsx/bitmanipulation.h"
|
|
46
|
+
#include "simdutf/lsx/simd.h"
|
|
47
|
+
|
|
48
|
+
#include "simdutf/lsx/end.h"
|
|
49
|
+
|
|
50
|
+
#endif // SIMDUTF_IMPLEMENTATION_LSX
|
|
51
|
+
|
|
52
|
+
#endif // SIMDUTF_LSX_H
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
#define SIMDUTF_IMPLEMENTATION ppc64
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
#ifndef SIMDUTF_PPC64_BITMANIPULATION_H
|
|
2
|
+
#define SIMDUTF_PPC64_BITMANIPULATION_H
|
|
3
|
+
|
|
4
|
+
namespace simdutf {
|
|
5
|
+
namespace SIMDUTF_IMPLEMENTATION {
|
|
6
|
+
namespace {
|
|
7
|
+
|
|
8
|
+
#ifdef SIMDUTF_REGULAR_VISUAL_STUDIO
|
|
9
|
+
simdutf_really_inline int count_ones(uint64_t input_num) {
|
|
10
|
+
// note: we do not support legacy 32-bit Windows
|
|
11
|
+
return __popcnt64(input_num); // Visual Studio wants two underscores
|
|
12
|
+
}
|
|
13
|
+
#else
|
|
14
|
+
simdutf_really_inline int count_ones(uint64_t input_num) {
|
|
15
|
+
return __builtin_popcountll(input_num);
|
|
16
|
+
}
|
|
17
|
+
#endif
|
|
18
|
+
|
|
19
|
+
#if SIMDUTF_NEED_TRAILING_ZEROES
|
|
20
|
+
simdutf_really_inline int trailing_zeroes(uint64_t input_num) {
|
|
21
|
+
return __builtin_ctzll(input_num);
|
|
22
|
+
}
|
|
23
|
+
#endif
|
|
24
|
+
|
|
25
|
+
} // unnamed namespace
|
|
26
|
+
} // namespace SIMDUTF_IMPLEMENTATION
|
|
27
|
+
} // namespace simdutf
|
|
28
|
+
|
|
29
|
+
#endif // SIMDUTF_PPC64_BITMANIPULATION_H
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
#undef SIMDUTF_IMPLEMENTATION
|
|
@@ -0,0 +1,348 @@
|
|
|
1
|
+
#ifndef SIMDUTF_PPC64_IMPLEMENTATION_H
|
|
2
|
+
#define SIMDUTF_PPC64_IMPLEMENTATION_H
|
|
3
|
+
|
|
4
|
+
#include "simdutf.h"
|
|
5
|
+
#include "simdutf/internal/isadetection.h"
|
|
6
|
+
|
|
7
|
+
namespace simdutf {
|
|
8
|
+
namespace ppc64 {
|
|
9
|
+
|
|
10
|
+
namespace {
|
|
11
|
+
using namespace simdutf;
|
|
12
|
+
|
|
13
|
+
template <size_t N> simdutf_really_inline size_t align_down(size_t size) {
|
|
14
|
+
return N * (size / N);
|
|
15
|
+
}
|
|
16
|
+
} // namespace
|
|
17
|
+
|
|
18
|
+
class implementation final : public simdutf::implementation {
|
|
19
|
+
public:
|
|
20
|
+
simdutf_really_inline implementation()
|
|
21
|
+
: simdutf::implementation("ppc64", "PPC64 ALTIVEC",
|
|
22
|
+
internal::instruction_set::ALTIVEC) {}
|
|
23
|
+
|
|
24
|
+
#if SIMDUTF_FEATURE_DETECT_ENCODING
|
|
25
|
+
simdutf_warn_unused int detect_encodings(const char *input,
|
|
26
|
+
size_t length) const noexcept final;
|
|
27
|
+
#endif // SIMDUTF_FEATURE_DETECT_ENCODING
|
|
28
|
+
|
|
29
|
+
#if SIMDUTF_FEATURE_UTF8 || SIMDUTF_FEATURE_DETECT_ENCODING
|
|
30
|
+
simdutf_warn_unused bool validate_utf8(const char *buf,
|
|
31
|
+
size_t len) const noexcept final;
|
|
32
|
+
#endif // SIMDUTF_FEATURE_UTF8 || SIMDUTF_FEATURE_DETECT_ENCODING
|
|
33
|
+
|
|
34
|
+
#if SIMDUTF_FEATURE_UTF8
|
|
35
|
+
simdutf_warn_unused result
|
|
36
|
+
validate_utf8_with_errors(const char *buf, size_t len) const noexcept final;
|
|
37
|
+
#endif // SIMDUTF_FEATURE_UTF8
|
|
38
|
+
|
|
39
|
+
#if SIMDUTF_FEATURE_ASCII
|
|
40
|
+
simdutf_warn_unused bool validate_ascii(const char *buf,
|
|
41
|
+
size_t len) const noexcept final;
|
|
42
|
+
simdutf_warn_unused result
|
|
43
|
+
validate_ascii_with_errors(const char *buf, size_t len) const noexcept final;
|
|
44
|
+
#endif // SIMDUTF_FEATURE_ASCII
|
|
45
|
+
|
|
46
|
+
#if SIMDUTF_FEATURE_UTF16 && SIMDUTF_FEATURE_ASCII
|
|
47
|
+
simdutf_warn_unused bool
|
|
48
|
+
validate_utf16le_as_ascii(const char16_t *buf,
|
|
49
|
+
size_t len) const noexcept final;
|
|
50
|
+
|
|
51
|
+
simdutf_warn_unused bool
|
|
52
|
+
validate_utf16be_as_ascii(const char16_t *buf,
|
|
53
|
+
size_t len) const noexcept final;
|
|
54
|
+
#endif // SIMDUTF_FEATURE_UTF16 && SIMDUTF_FEATURE_ASCII
|
|
55
|
+
|
|
56
|
+
#if SIMDUTF_FEATURE_UTF16 || SIMDUTF_FEATURE_DETECT_ENCODING
|
|
57
|
+
simdutf_warn_unused bool validate_utf16le(const char16_t *buf,
|
|
58
|
+
size_t len) const noexcept final;
|
|
59
|
+
#endif // SIMDUTF_FEATURE_UTF16 || SIMDUTF_FEATURE_DETECT_ENCODING
|
|
60
|
+
|
|
61
|
+
#if SIMDUTF_FEATURE_UTF16
|
|
62
|
+
simdutf_warn_unused bool validate_utf16be(const char16_t *buf,
|
|
63
|
+
size_t len) const noexcept final;
|
|
64
|
+
simdutf_warn_unused result validate_utf16le_with_errors(
|
|
65
|
+
const char16_t *buf, size_t len) const noexcept final;
|
|
66
|
+
simdutf_warn_unused result validate_utf16be_with_errors(
|
|
67
|
+
const char16_t *buf, size_t len) const noexcept final;
|
|
68
|
+
#endif // SIMDUTF_FEATURE_UTF16
|
|
69
|
+
|
|
70
|
+
#if SIMDUTF_FEATURE_UTF32 || SIMDUTF_FEATURE_DETECT_ENCODING
|
|
71
|
+
simdutf_warn_unused bool validate_utf32(const char32_t *buf,
|
|
72
|
+
size_t len) const noexcept final;
|
|
73
|
+
#endif // SIMDUTF_FEATURE_UTF32 || SIMDUTF_FEATURE_DETECT_ENCODING
|
|
74
|
+
|
|
75
|
+
#if SIMDUTF_FEATURE_UTF32
|
|
76
|
+
simdutf_warn_unused result validate_utf32_with_errors(
|
|
77
|
+
const char32_t *buf, size_t len) const noexcept final;
|
|
78
|
+
#endif // SIMDUTF_FEATURE_UTF32
|
|
79
|
+
|
|
80
|
+
#if SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_LATIN1
|
|
81
|
+
simdutf_warn_unused size_t convert_latin1_to_utf8(
|
|
82
|
+
const char *buf, size_t len, char *utf8_output) const noexcept final;
|
|
83
|
+
#endif // SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_LATIN1
|
|
84
|
+
|
|
85
|
+
#if SIMDUTF_FEATURE_UTF16 && SIMDUTF_FEATURE_LATIN1
|
|
86
|
+
simdutf_warn_unused size_t convert_latin1_to_utf16le(
|
|
87
|
+
const char *buf, size_t len, char16_t *utf16_buffer) const noexcept final;
|
|
88
|
+
simdutf_warn_unused size_t convert_latin1_to_utf16be(
|
|
89
|
+
const char *buf, size_t len, char16_t *utf16_buffer) const noexcept final;
|
|
90
|
+
#endif // SIMDUTF_FEATURE_UTF16 && SIMDUTF_FEATURE_LATIN1
|
|
91
|
+
|
|
92
|
+
#if SIMDUTF_FEATURE_UTF32 && SIMDUTF_FEATURE_LATIN1
|
|
93
|
+
simdutf_warn_unused size_t convert_latin1_to_utf32(
|
|
94
|
+
const char *buf, size_t len, char32_t *utf32_output) const noexcept final;
|
|
95
|
+
#endif // SIMDUTF_FEATURE_UTF32 && SIMDUTF_FEATURE_LATIN1
|
|
96
|
+
|
|
97
|
+
#if SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_LATIN1
|
|
98
|
+
simdutf_warn_unused size_t convert_utf8_to_latin1(
|
|
99
|
+
const char *buf, size_t len, char *latin1_output) const noexcept final;
|
|
100
|
+
simdutf_warn_unused result convert_utf8_to_latin1_with_errors(
|
|
101
|
+
const char *buf, size_t len, char *latin1_buffer) const noexcept final;
|
|
102
|
+
simdutf_warn_unused size_t convert_valid_utf8_to_latin1(
|
|
103
|
+
const char *buf, size_t len, char *latin1_output) const noexcept final;
|
|
104
|
+
#endif // SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_LATIN1
|
|
105
|
+
|
|
106
|
+
#if SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_UTF16
|
|
107
|
+
simdutf_warn_unused size_t convert_utf8_to_utf16le(
|
|
108
|
+
const char *buf, size_t len, char16_t *utf16_output) const noexcept final;
|
|
109
|
+
simdutf_warn_unused size_t convert_utf8_to_utf16be(
|
|
110
|
+
const char *buf, size_t len, char16_t *utf16_output) const noexcept final;
|
|
111
|
+
simdutf_warn_unused result convert_utf8_to_utf16le_with_errors(
|
|
112
|
+
const char *buf, size_t len, char16_t *utf16_output) const noexcept final;
|
|
113
|
+
simdutf_warn_unused result convert_utf8_to_utf16be_with_errors(
|
|
114
|
+
const char *buf, size_t len, char16_t *utf16_output) const noexcept final;
|
|
115
|
+
simdutf_warn_unused size_t convert_valid_utf8_to_utf16le(
|
|
116
|
+
const char *buf, size_t len, char16_t *utf16_buffer) const noexcept final;
|
|
117
|
+
simdutf_warn_unused size_t convert_valid_utf8_to_utf16be(
|
|
118
|
+
const char *buf, size_t len, char16_t *utf16_buffer) const noexcept final;
|
|
119
|
+
#endif // SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_UTF16
|
|
120
|
+
|
|
121
|
+
#if SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_UTF32
|
|
122
|
+
simdutf_warn_unused size_t convert_utf8_to_utf32(
|
|
123
|
+
const char *buf, size_t len, char32_t *utf32_output) const noexcept final;
|
|
124
|
+
simdutf_warn_unused result convert_utf8_to_utf32_with_errors(
|
|
125
|
+
const char *buf, size_t len, char32_t *utf32_output) const noexcept final;
|
|
126
|
+
simdutf_warn_unused size_t convert_valid_utf8_to_utf32(
|
|
127
|
+
const char *buf, size_t len, char32_t *utf32_buffer) const noexcept final;
|
|
128
|
+
#endif // SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_UTF32
|
|
129
|
+
|
|
130
|
+
#if SIMDUTF_FEATURE_UTF16 && SIMDUTF_FEATURE_LATIN1
|
|
131
|
+
simdutf_warn_unused size_t
|
|
132
|
+
convert_utf16le_to_latin1(const char16_t *buf, size_t len,
|
|
133
|
+
char *latin1_buffer) const noexcept final;
|
|
134
|
+
simdutf_warn_unused size_t
|
|
135
|
+
convert_utf16be_to_latin1(const char16_t *buf, size_t len,
|
|
136
|
+
char *latin1_buffer) const noexcept final;
|
|
137
|
+
simdutf_warn_unused result convert_utf16le_to_latin1_with_errors(
|
|
138
|
+
const char16_t *buf, size_t len,
|
|
139
|
+
char *latin1_buffer) const noexcept final;
|
|
140
|
+
simdutf_warn_unused result convert_utf16be_to_latin1_with_errors(
|
|
141
|
+
const char16_t *buf, size_t len,
|
|
142
|
+
char *latin1_buffer) const noexcept final;
|
|
143
|
+
simdutf_warn_unused size_t
|
|
144
|
+
convert_valid_utf16le_to_latin1(const char16_t *buf, size_t len,
|
|
145
|
+
char *latin1_buffer) const noexcept final;
|
|
146
|
+
simdutf_warn_unused size_t
|
|
147
|
+
convert_valid_utf16be_to_latin1(const char16_t *buf, size_t len,
|
|
148
|
+
char *latin1_buffer) const noexcept final;
|
|
149
|
+
#endif // SIMDUTF_FEATURE_UTF16 && SIMDUTF_FEATURE_LATIN1
|
|
150
|
+
|
|
151
|
+
#if SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_UTF16
|
|
152
|
+
simdutf_warn_unused size_t convert_utf16le_to_utf8(
|
|
153
|
+
const char16_t *buf, size_t len, char *utf8_buffer) const noexcept final;
|
|
154
|
+
simdutf_warn_unused size_t convert_utf16be_to_utf8(
|
|
155
|
+
const char16_t *buf, size_t len, char *utf8_buffer) const noexcept final;
|
|
156
|
+
simdutf_warn_unused result convert_utf16le_to_utf8_with_errors(
|
|
157
|
+
const char16_t *buf, size_t len, char *utf8_buffer) const noexcept final;
|
|
158
|
+
simdutf_warn_unused result convert_utf16be_to_utf8_with_errors(
|
|
159
|
+
const char16_t *buf, size_t len, char *utf8_buffer) const noexcept final;
|
|
160
|
+
simdutf_warn_unused size_t convert_valid_utf16le_to_utf8(
|
|
161
|
+
const char16_t *buf, size_t len, char *utf8_buffer) const noexcept final;
|
|
162
|
+
simdutf_warn_unused size_t convert_valid_utf16be_to_utf8(
|
|
163
|
+
const char16_t *buf, size_t len, char *utf8_buffer) const noexcept final;
|
|
164
|
+
#endif // SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_UTF16
|
|
165
|
+
|
|
166
|
+
#if SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_UTF32
|
|
167
|
+
simdutf_warn_unused size_t convert_utf32_to_utf8(
|
|
168
|
+
const char32_t *buf, size_t len, char *utf8_buffer) const noexcept final;
|
|
169
|
+
simdutf_warn_unused result convert_utf32_to_utf8_with_errors(
|
|
170
|
+
const char32_t *buf, size_t len, char *utf8_buffer) const noexcept final;
|
|
171
|
+
simdutf_warn_unused size_t convert_valid_utf32_to_utf8(
|
|
172
|
+
const char32_t *buf, size_t len, char *utf8_buffer) const noexcept final;
|
|
173
|
+
#endif // SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_UTF32
|
|
174
|
+
|
|
175
|
+
#if SIMDUTF_FEATURE_UTF32 && SIMDUTF_FEATURE_LATIN1
|
|
176
|
+
simdutf_warn_unused size_t
|
|
177
|
+
convert_utf32_to_latin1(const char32_t *buf, size_t len,
|
|
178
|
+
char *latin1_output) const noexcept final;
|
|
179
|
+
simdutf_warn_unused result
|
|
180
|
+
convert_utf32_to_latin1_with_errors(const char32_t *buf, size_t len,
|
|
181
|
+
char *latin1_output) const noexcept final;
|
|
182
|
+
simdutf_warn_unused size_t
|
|
183
|
+
convert_valid_utf32_to_latin1(const char32_t *buf, size_t len,
|
|
184
|
+
char *latin1_output) const noexcept final;
|
|
185
|
+
#endif // SIMDUTF_FEATURE_UTF32 && SIMDUTF_FEATURE_LATIN1
|
|
186
|
+
|
|
187
|
+
#if SIMDUTF_FEATURE_UTF16 && SIMDUTF_FEATURE_UTF32
|
|
188
|
+
simdutf_warn_unused size_t
|
|
189
|
+
convert_utf32_to_utf16le(const char32_t *buf, size_t len,
|
|
190
|
+
char16_t *utf16_buffer) const noexcept final;
|
|
191
|
+
simdutf_warn_unused size_t
|
|
192
|
+
convert_utf32_to_utf16be(const char32_t *buf, size_t len,
|
|
193
|
+
char16_t *utf16_buffer) const noexcept final;
|
|
194
|
+
simdutf_warn_unused result convert_utf32_to_utf16le_with_errors(
|
|
195
|
+
const char32_t *buf, size_t len,
|
|
196
|
+
char16_t *utf16_buffer) const noexcept final;
|
|
197
|
+
simdutf_warn_unused result convert_utf32_to_utf16be_with_errors(
|
|
198
|
+
const char32_t *buf, size_t len,
|
|
199
|
+
char16_t *utf16_buffer) const noexcept final;
|
|
200
|
+
simdutf_warn_unused size_t
|
|
201
|
+
convert_valid_utf32_to_utf16le(const char32_t *buf, size_t len,
|
|
202
|
+
char16_t *utf16_buffer) const noexcept final;
|
|
203
|
+
simdutf_warn_unused size_t
|
|
204
|
+
convert_valid_utf32_to_utf16be(const char32_t *buf, size_t len,
|
|
205
|
+
char16_t *utf16_buffer) const noexcept final;
|
|
206
|
+
simdutf_warn_unused size_t
|
|
207
|
+
convert_utf16le_to_utf32(const char16_t *buf, size_t len,
|
|
208
|
+
char32_t *utf32_buffer) const noexcept final;
|
|
209
|
+
simdutf_warn_unused size_t
|
|
210
|
+
convert_utf16be_to_utf32(const char16_t *buf, size_t len,
|
|
211
|
+
char32_t *utf32_buffer) const noexcept final;
|
|
212
|
+
simdutf_warn_unused result convert_utf16le_to_utf32_with_errors(
|
|
213
|
+
const char16_t *buf, size_t len,
|
|
214
|
+
char32_t *utf32_buffer) const noexcept final;
|
|
215
|
+
simdutf_warn_unused result convert_utf16be_to_utf32_with_errors(
|
|
216
|
+
const char16_t *buf, size_t len,
|
|
217
|
+
char32_t *utf32_buffer) const noexcept final;
|
|
218
|
+
simdutf_warn_unused size_t
|
|
219
|
+
convert_valid_utf16le_to_utf32(const char16_t *buf, size_t len,
|
|
220
|
+
char32_t *utf32_buffer) const noexcept final;
|
|
221
|
+
simdutf_warn_unused size_t
|
|
222
|
+
convert_valid_utf16be_to_utf32(const char16_t *buf, size_t len,
|
|
223
|
+
char32_t *utf32_buffer) const noexcept final;
|
|
224
|
+
#endif // SIMDUTF_FEATURE_UTF16 && SIMDUTF_FEATURE_UTF32
|
|
225
|
+
|
|
226
|
+
#if SIMDUTF_FEATURE_UTF16
|
|
227
|
+
void change_endianness_utf16(const char16_t *buf, size_t length,
|
|
228
|
+
char16_t *output) const noexcept final;
|
|
229
|
+
simdutf_warn_unused size_t
|
|
230
|
+
count_utf16le(const char16_t *buf, size_t length) const noexcept override;
|
|
231
|
+
simdutf_warn_unused size_t
|
|
232
|
+
count_utf16be(const char16_t *buf, size_t length) const noexcept override;
|
|
233
|
+
#endif // SIMDUTF_FEATURE_UTF16
|
|
234
|
+
|
|
235
|
+
#if SIMDUTF_FEATURE_UTF8
|
|
236
|
+
simdutf_warn_unused size_t count_utf8(const char *buf,
|
|
237
|
+
size_t length) const noexcept override;
|
|
238
|
+
#endif // SIMDUTF_FEATURE_UTF8
|
|
239
|
+
|
|
240
|
+
#if SIMDUTF_FEATURE_UTF16
|
|
241
|
+
simdutf_warn_unused size_t utf8_length_from_utf16le(
|
|
242
|
+
const char16_t *input, size_t length) const noexcept override;
|
|
243
|
+
simdutf_warn_unused size_t utf8_length_from_utf16be(
|
|
244
|
+
const char16_t *input, size_t length) const noexcept override;
|
|
245
|
+
#endif // SIMDUTF_FEATURE_UTF16
|
|
246
|
+
|
|
247
|
+
#if SIMDUTF_FEATURE_UTF16 && SIMDUTF_FEATURE_UTF32
|
|
248
|
+
simdutf_warn_unused size_t utf32_length_from_utf16le(
|
|
249
|
+
const char16_t *input, size_t length) const noexcept override;
|
|
250
|
+
simdutf_warn_unused size_t utf32_length_from_utf16be(
|
|
251
|
+
const char16_t *input, size_t length) const noexcept override;
|
|
252
|
+
#endif // SIMDUTF_FEATURE_UTF16 && SIMDUTF_FEATURE_UTF32
|
|
253
|
+
|
|
254
|
+
#if SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_UTF16
|
|
255
|
+
simdutf_warn_unused size_t utf16_length_from_utf8(
|
|
256
|
+
const char *input, size_t length) const noexcept override;
|
|
257
|
+
simdutf_warn_unused result utf8_length_from_utf16le_with_replacement(
|
|
258
|
+
const char16_t *input, size_t length) const noexcept;
|
|
259
|
+
;
|
|
260
|
+
simdutf_warn_unused result utf8_length_from_utf16be_with_replacement(
|
|
261
|
+
const char16_t *input, size_t length) const noexcept;
|
|
262
|
+
;
|
|
263
|
+
|
|
264
|
+
simdutf_warn_unused size_t convert_utf16le_to_utf8_with_replacement(
|
|
265
|
+
const char16_t *input, size_t length,
|
|
266
|
+
char *utf8_buffer) const noexcept override;
|
|
267
|
+
|
|
268
|
+
simdutf_warn_unused size_t convert_utf16be_to_utf8_with_replacement(
|
|
269
|
+
const char16_t *input, size_t length,
|
|
270
|
+
char *utf8_buffer) const noexcept override;
|
|
271
|
+
|
|
272
|
+
#endif // SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_UTF16
|
|
273
|
+
|
|
274
|
+
#if SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_UTF32
|
|
275
|
+
simdutf_warn_unused size_t
|
|
276
|
+
utf8_length_from_utf32(const char32_t *input, size_t length) const noexcept;
|
|
277
|
+
#endif // SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_UTF32
|
|
278
|
+
|
|
279
|
+
#if SIMDUTF_FEATURE_UTF16 && SIMDUTF_FEATURE_UTF32
|
|
280
|
+
simdutf_warn_unused size_t
|
|
281
|
+
utf16_length_from_utf32(const char32_t *input, size_t length) const noexcept;
|
|
282
|
+
#endif // SIMDUTF_FEATURE_UTF16 && SIMDUTF_FEATURE_UTF32
|
|
283
|
+
|
|
284
|
+
#if SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_UTF32
|
|
285
|
+
simdutf_warn_unused size_t
|
|
286
|
+
utf32_length_from_utf8(const char *input, size_t length) const noexcept;
|
|
287
|
+
#endif // SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_UTF32
|
|
288
|
+
|
|
289
|
+
#if SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_LATIN1
|
|
290
|
+
simdutf_warn_unused size_t
|
|
291
|
+
latin1_length_from_utf8(const char *input, size_t length) const noexcept;
|
|
292
|
+
#endif // SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_LATIN1
|
|
293
|
+
|
|
294
|
+
#if SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_LATIN1
|
|
295
|
+
simdutf_warn_unused size_t
|
|
296
|
+
utf8_length_from_latin1(const char *input, size_t length) const noexcept;
|
|
297
|
+
#endif // SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_LATIN1
|
|
298
|
+
|
|
299
|
+
#if SIMDUTF_FEATURE_BASE64
|
|
300
|
+
simdutf_warn_unused size_t maximal_binary_length_from_base64(
|
|
301
|
+
const char *input, size_t length) const noexcept;
|
|
302
|
+
simdutf_warn_unused result base64_to_binary(
|
|
303
|
+
const char *input, size_t length, char *output, base64_options options,
|
|
304
|
+
last_chunk_handling_options last_chunk_options =
|
|
305
|
+
last_chunk_handling_options::loose) const noexcept;
|
|
306
|
+
simdutf_warn_unused full_result base64_to_binary_details(
|
|
307
|
+
const char *input, size_t length, char *output, base64_options options,
|
|
308
|
+
last_chunk_handling_options last_chunk_options =
|
|
309
|
+
last_chunk_handling_options::loose) const noexcept;
|
|
310
|
+
simdutf_warn_unused result
|
|
311
|
+
base64_to_binary(const char16_t *input, size_t length, char *output,
|
|
312
|
+
base64_options options,
|
|
313
|
+
last_chunk_handling_options last_chunk_options =
|
|
314
|
+
last_chunk_handling_options::loose) const noexcept;
|
|
315
|
+
simdutf_warn_unused full_result base64_to_binary_details(
|
|
316
|
+
const char16_t *input, size_t length, char *output,
|
|
317
|
+
base64_options options,
|
|
318
|
+
last_chunk_handling_options last_chunk_options =
|
|
319
|
+
last_chunk_handling_options::loose) const noexcept;
|
|
320
|
+
size_t binary_to_base64(const char *input, size_t length, char *output,
|
|
321
|
+
base64_options options) const noexcept;
|
|
322
|
+
|
|
323
|
+
size_t binary_to_base64_with_lines(const char *input, size_t length,
|
|
324
|
+
char *output, size_t line_length,
|
|
325
|
+
base64_options options) const noexcept;
|
|
326
|
+
const char *find(const char *start, const char *end,
|
|
327
|
+
char character) const noexcept;
|
|
328
|
+
|
|
329
|
+
const char16_t *find(const char16_t *start, const char16_t *end,
|
|
330
|
+
char16_t character) const noexcept;
|
|
331
|
+
#endif // SIMDUTF_FEATURE_BASE64
|
|
332
|
+
|
|
333
|
+
#ifdef SIMDUTF_INTERNAL_TESTS
|
|
334
|
+
virtual std::vector<TestProcedure> internal_tests() const override;
|
|
335
|
+
#endif
|
|
336
|
+
#if SIMDUTF_FEATURE_UTF16
|
|
337
|
+
|
|
338
|
+
void to_well_formed_utf16be(const char16_t *input, size_t len,
|
|
339
|
+
char16_t *output) const noexcept final;
|
|
340
|
+
void to_well_formed_utf16le(const char16_t *input, size_t len,
|
|
341
|
+
char16_t *output) const noexcept final;
|
|
342
|
+
#endif // SIMDUTF_FEATURE_UTF16
|
|
343
|
+
};
|
|
344
|
+
|
|
345
|
+
} // namespace ppc64
|
|
346
|
+
} // namespace simdutf
|
|
347
|
+
|
|
348
|
+
#endif // SIMDUTF_PPC64_IMPLEMENTATION_H
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
#ifndef SIMDUTF_PPC64_INTRINSICS_H
|
|
2
|
+
#define SIMDUTF_PPC64_INTRINSICS_H
|
|
3
|
+
|
|
4
|
+
#include "simdutf.h"
|
|
5
|
+
|
|
6
|
+
// This should be the correct header whether
|
|
7
|
+
// you use visual studio or other compilers.
|
|
8
|
+
#include <altivec.h>
|
|
9
|
+
|
|
10
|
+
// These are defined by altivec.h in GCC toolchain, it is safe to undef them.
|
|
11
|
+
#ifdef bool
|
|
12
|
+
#undef bool
|
|
13
|
+
#endif
|
|
14
|
+
|
|
15
|
+
#ifdef vector
|
|
16
|
+
#undef vector
|
|
17
|
+
#endif
|
|
18
|
+
|
|
19
|
+
#endif // SIMDUTF_PPC64_INTRINSICS_H
|