react-native-quick-crypto 1.0.19 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/QuickCrypto.podspec +12 -38
- package/README.md +2 -0
- package/android/CMakeLists.txt +3 -0
- package/cpp/utils/HybridUtils.cpp +39 -77
- package/deps/simdutf/.clang-format +4 -0
- package/deps/simdutf/.github/ISSUE_TEMPLATE/bug_report.md +62 -0
- package/deps/simdutf/.github/ISSUE_TEMPLATE/config.yml +1 -0
- package/deps/simdutf/.github/ISSUE_TEMPLATE/feature_request.md +35 -0
- package/deps/simdutf/.github/ISSUE_TEMPLATE/standard-issue-template.md +29 -0
- package/deps/simdutf/.github/pull_request_template.md +51 -0
- package/deps/simdutf/.github/workflows/aarch64.yml +39 -0
- package/deps/simdutf/.github/workflows/alpine.yml +27 -0
- package/deps/simdutf/.github/workflows/amalgamation_demos.yml +34 -0
- package/deps/simdutf/.github/workflows/armv7.yml +32 -0
- package/deps/simdutf/.github/workflows/atomic_fuzz.yml +25 -0
- package/deps/simdutf/.github/workflows/cifuzz.yml +37 -0
- package/deps/simdutf/.github/workflows/clangformat.yml +36 -0
- package/deps/simdutf/.github/workflows/debian-latestcxxstandards.yml +40 -0
- package/deps/simdutf/.github/workflows/debian.yml +33 -0
- package/deps/simdutf/.github/workflows/documentation.yml +36 -0
- package/deps/simdutf/.github/workflows/emscripten.yml +19 -0
- package/deps/simdutf/.github/workflows/loongarch64-gcc-14.2.yml +39 -0
- package/deps/simdutf/.github/workflows/macos-latest.yml +29 -0
- package/deps/simdutf/.github/workflows/msys2-clang.yml +48 -0
- package/deps/simdutf/.github/workflows/msys2.yml +50 -0
- package/deps/simdutf/.github/workflows/ppc64le.yml +29 -0
- package/deps/simdutf/.github/workflows/rvv-1024-clang-18.yml +35 -0
- package/deps/simdutf/.github/workflows/rvv-128-clang-17.yml +35 -0
- package/deps/simdutf/.github/workflows/rvv-256-gcc-14.yml +31 -0
- package/deps/simdutf/.github/workflows/s390x.yml +29 -0
- package/deps/simdutf/.github/workflows/selective-amalgamation.yml +29 -0
- package/deps/simdutf/.github/workflows/typos.yml +19 -0
- package/deps/simdutf/.github/workflows/ubuntu22-cxx20.yml +30 -0
- package/deps/simdutf/.github/workflows/ubuntu22.yml +32 -0
- package/deps/simdutf/.github/workflows/ubuntu22_gcc12.yml +27 -0
- package/deps/simdutf/.github/workflows/ubuntu22sani.yml +29 -0
- package/deps/simdutf/.github/workflows/ubuntu24-cxxstandards.yml +34 -0
- package/deps/simdutf/.github/workflows/ubuntu24-unsignedchar.yml +34 -0
- package/deps/simdutf/.github/workflows/ubuntu24.yml +32 -0
- package/deps/simdutf/.github/workflows/ubuntu24sani.yml +36 -0
- package/deps/simdutf/.github/workflows/ubuntu24sani_clang.yml +29 -0
- package/deps/simdutf/.github/workflows/vs17-arm-ci.yml +21 -0
- package/deps/simdutf/.github/workflows/vs17-ci-cxx20.yml +41 -0
- package/deps/simdutf/.github/workflows/vs17-ci.yml +41 -0
- package/deps/simdutf/.github/workflows/vs17-clang-ci.yml +41 -0
- package/deps/simdutf/.github/workflows/vs17-cxxstandards.yml +36 -0
- package/deps/simdutf/AI_USAGE_POLICY.md +56 -0
- package/deps/simdutf/AUTHORS +6 -0
- package/deps/simdutf/CMakeLists.txt +231 -0
- package/deps/simdutf/CONTRIBUTING.md +214 -0
- package/deps/simdutf/CONTRIBUTORS +1 -0
- package/deps/simdutf/Doxyfile +2584 -0
- package/deps/simdutf/LICENSE-APACHE +201 -0
- package/deps/simdutf/LICENSE-MIT +18 -0
- package/deps/simdutf/Makefile.crosscompile +54 -0
- package/deps/simdutf/README-RVV.md +16 -0
- package/deps/simdutf/README.md +2782 -0
- package/deps/simdutf/SECURITY.md +8 -0
- package/deps/simdutf/benchmarks/CMakeLists.txt +101 -0
- package/deps/simdutf/benchmarks/alignment.cpp +150 -0
- package/deps/simdutf/benchmarks/base64/CMakeLists.txt +30 -0
- package/deps/simdutf/benchmarks/base64/benchmark_base64.cpp +875 -0
- package/deps/simdutf/benchmarks/base64/libbase64_spaces.h +49 -0
- package/deps/simdutf/benchmarks/base64/node_base64.h +227 -0
- package/deps/simdutf/benchmarks/base64/openssl3_base64.h +334 -0
- package/deps/simdutf/benchmarks/benchmark.cpp +65 -0
- package/deps/simdutf/benchmarks/benchmark_to_well_formed_utf16.cpp +347 -0
- package/deps/simdutf/benchmarks/competition/.clang-format-ignore +5 -0
- package/deps/simdutf/benchmarks/competition/CppCon2018/utf_utils.cpp +1276 -0
- package/deps/simdutf/benchmarks/competition/CppCon2018/utf_utils.h +595 -0
- package/deps/simdutf/benchmarks/competition/README.md +7 -0
- package/deps/simdutf/benchmarks/competition/hoehrmann/hoehrmann.h +91 -0
- package/deps/simdutf/benchmarks/competition/inoue2008/inoue_utf8_to_utf16.h +444 -0
- package/deps/simdutf/benchmarks/competition/inoue2008/inoue_utf8_to_utf16_tables.h +13183 -0
- package/deps/simdutf/benchmarks/competition/inoue2008/script.py +73 -0
- package/deps/simdutf/benchmarks/competition/llvm/ConvertUTF.cpp +738 -0
- package/deps/simdutf/benchmarks/competition/llvm/ConvertUTF.h +293 -0
- package/deps/simdutf/benchmarks/competition/u8u16/COPYRIGHT +8 -0
- package/deps/simdutf/benchmarks/competition/u8u16/Makefile +44 -0
- package/deps/simdutf/benchmarks/competition/u8u16/OSL3.0.txt +169 -0
- package/deps/simdutf/benchmarks/competition/u8u16/Profiling/BOM_Profiler.h +148 -0
- package/deps/simdutf/benchmarks/competition/u8u16/Profiling/i386_timer.h +45 -0
- package/deps/simdutf/benchmarks/competition/u8u16/Profiling/ppc_timer.c +34 -0
- package/deps/simdutf/benchmarks/competition/u8u16/README +56 -0
- package/deps/simdutf/benchmarks/competition/u8u16/config/config_defs.h +43 -0
- package/deps/simdutf/benchmarks/competition/u8u16/config/g4_config.h +27 -0
- package/deps/simdutf/benchmarks/competition/u8u16/config/mmx_config.h +16 -0
- package/deps/simdutf/benchmarks/competition/u8u16/config/p4_config.h +18 -0
- package/deps/simdutf/benchmarks/competition/u8u16/config/p4_ideal_config.h +16 -0
- package/deps/simdutf/benchmarks/competition/u8u16/config/spu_config.h +28 -0
- package/deps/simdutf/benchmarks/competition/u8u16/config/ssse3_config.h +20 -0
- package/deps/simdutf/benchmarks/competition/u8u16/iconv_u8u16.c +2 -0
- package/deps/simdutf/benchmarks/competition/u8u16/lib/altivec_simd.h +440 -0
- package/deps/simdutf/benchmarks/competition/u8u16/lib/libgen/make_basic_ops.py +121 -0
- package/deps/simdutf/benchmarks/competition/u8u16/lib/libgen/make_half_operand_versions.py +158 -0
- package/deps/simdutf/benchmarks/competition/u8u16/lib/libgen/make_test.py +270 -0
- package/deps/simdutf/benchmarks/competition/u8u16/lib/mmx_simd.h +141 -0
- package/deps/simdutf/benchmarks/competition/u8u16/lib/mmx_simd_basic.h +216 -0
- package/deps/simdutf/benchmarks/competition/u8u16/lib/mmx_simd_built_in.h +119 -0
- package/deps/simdutf/benchmarks/competition/u8u16/lib/mmx_simd_modified.h +2430 -0
- package/deps/simdutf/benchmarks/competition/u8u16/lib/outline.txt +39 -0
- package/deps/simdutf/benchmarks/competition/u8u16/lib/spu_simd.h +421 -0
- package/deps/simdutf/benchmarks/competition/u8u16/lib/sse_simd.h +836 -0
- package/deps/simdutf/benchmarks/competition/u8u16/lib/stdint.h +222 -0
- package/deps/simdutf/benchmarks/competition/u8u16/libu8u16_BE.c +4 -0
- package/deps/simdutf/benchmarks/competition/u8u16/libu8u16_LE.c +5 -0
- package/deps/simdutf/benchmarks/competition/u8u16/proto/u8u16.py +390 -0
- package/deps/simdutf/benchmarks/competition/u8u16/src/Makefile +18 -0
- package/deps/simdutf/benchmarks/competition/u8u16/src/bytelex.h +448 -0
- package/deps/simdutf/benchmarks/competition/u8u16/src/charsets/ASCII_EBCDIC.h +284 -0
- package/deps/simdutf/benchmarks/competition/u8u16/src/libu8u16.c +1975 -0
- package/deps/simdutf/benchmarks/competition/u8u16/src/libu8u16.pdf +0 -0
- package/deps/simdutf/benchmarks/competition/u8u16/src/libu8u16.w +2263 -0
- package/deps/simdutf/benchmarks/competition/u8u16/src/multiliteral.h +239 -0
- package/deps/simdutf/benchmarks/competition/u8u16/src/u8u16.c +232 -0
- package/deps/simdutf/benchmarks/competition/u8u16/src/x8x16.c +194 -0
- package/deps/simdutf/benchmarks/competition/u8u16/src/xml_error.c +193 -0
- package/deps/simdutf/benchmarks/competition/u8u16/src/xml_error.h +167 -0
- package/deps/simdutf/benchmarks/competition/u8u16/src/xmldecl.c +288 -0
- package/deps/simdutf/benchmarks/competition/u8u16/src/xmldecl.h +117 -0
- package/deps/simdutf/benchmarks/competition/u8u16/u8u16_g4.c +2 -0
- package/deps/simdutf/benchmarks/competition/u8u16/u8u16_mmx.c +2 -0
- package/deps/simdutf/benchmarks/competition/u8u16/u8u16_p4.c +3 -0
- package/deps/simdutf/benchmarks/competition/u8u16/u8u16_p4_ideal.c +2 -0
- package/deps/simdutf/benchmarks/competition/u8u16/u8u16_spu.c +2 -0
- package/deps/simdutf/benchmarks/competition/u8u16/u8u16_ssse3.c +3 -0
- package/deps/simdutf/benchmarks/competition/u8u16/x8x16_p4.c +2 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/LICENSE +23 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/data/test_minimal.txt +44 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/readme.md +106 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_clang_corr_tests.cmd +11 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_clang_corr_tests.sh +13 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_gcc_corr_tests.sh +13 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_gcc_example.sh +13 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_gcc_file_conv.sh +14 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_gcc_iconv_lib.sh +11 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_gcc_iconv_sample.sh +8 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_mingw_corr_tests.cmd +12 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_mingw_example.cmd +13 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_mingw_file_conv.cmd +14 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_mingw_iconv_lib.cmd +11 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_mingw_iconv_sample.cmd +8 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_msvc_corr_tests.cmd +11 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_msvc_example.cmd +12 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_msvc_file_conv.cmd +13 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_msvc_iconv_lib.cmd +10 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_msvc_iconv_sample.cmd +9 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/html_table.py +25 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/measure.py +94 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/resize.py +20 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/wipe_all.cmd +2 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/wipe_interm.cmd +1 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/base/CustomMemcpy.h +75 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/base/PerfDefs.h +47 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/base/Timing.cpp +17 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/base/Timing.h +76 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/buffer/AllProcessors.cpp +35 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/buffer/BaseBufferProcessor.cpp +117 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/buffer/BaseBufferProcessor.h +210 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/buffer/BufferDecoder.h +158 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/buffer/BufferEncoder.h +104 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/buffer/ProcessorPlugins.h +334 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/buffer/ProcessorSelector.h +186 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/core/DecoderLut.cpp +140 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/core/DecoderLut.h +42 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/core/DecoderProcess.h +100 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/core/Dfa.h +57 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/core/EncoderLut.cpp +85 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/core/EncoderLut.h +27 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/core/EncoderProcess.h +126 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/core/ProcessTrivial.h +108 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/iconv/iconv.cpp +139 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/iconv/iconv.h +74 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/message/MessageConverter.cpp +65 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/message/MessageConverter.h +91 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/tests/CorrectnessTests.cpp +772 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/tests/Example.cpp +12 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/tests/FileConverter.cpp +486 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/tests/iconv_sample.c +162 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/utf8lut.h +15 -0
- package/deps/simdutf/benchmarks/competition/utf8sse4/fromutf8-sse.cpp +292 -0
- package/deps/simdutf/benchmarks/competition/utfcpp/LICENSE +23 -0
- package/deps/simdutf/benchmarks/competition/utfcpp/README.md +1503 -0
- package/deps/simdutf/benchmarks/competition/utfcpp/source/utf8/checked.h +335 -0
- package/deps/simdutf/benchmarks/competition/utfcpp/source/utf8/core.h +338 -0
- package/deps/simdutf/benchmarks/competition/utfcpp/source/utf8/cpp11.h +103 -0
- package/deps/simdutf/benchmarks/competition/utfcpp/source/utf8/cpp17.h +103 -0
- package/deps/simdutf/benchmarks/competition/utfcpp/source/utf8/unchecked.h +274 -0
- package/deps/simdutf/benchmarks/competition/utfcpp/source/utf8.h +34 -0
- package/deps/simdutf/benchmarks/dataset/README.md +155 -0
- package/deps/simdutf/benchmarks/dataset/emoji.txt +204 -0
- package/deps/simdutf/benchmarks/dataset/scripts/utf8type.py +40 -0
- package/deps/simdutf/benchmarks/dataset/wikipedia_mars/Makefile +80 -0
- package/deps/simdutf/benchmarks/dataset/wikipedia_mars/convert_to_utf6.py +20 -0
- package/deps/simdutf/benchmarks/find/CMakeLists.txt +6 -0
- package/deps/simdutf/benchmarks/find/findbenchmark.cpp +63 -0
- package/deps/simdutf/benchmarks/find/findbenchmarker.h +46 -0
- package/deps/simdutf/benchmarks/shortbench.cpp +555 -0
- package/deps/simdutf/benchmarks/src/CMakeLists.txt +52 -0
- package/deps/simdutf/benchmarks/src/apple_arm_events.h +1104 -0
- package/deps/simdutf/benchmarks/src/benchmark.cpp +3899 -0
- package/deps/simdutf/benchmarks/src/benchmark.h +317 -0
- package/deps/simdutf/benchmarks/src/benchmark_base.cpp +144 -0
- package/deps/simdutf/benchmarks/src/benchmark_base.h +98 -0
- package/deps/simdutf/benchmarks/src/cmdline.cpp +176 -0
- package/deps/simdutf/benchmarks/src/cmdline.h +35 -0
- package/deps/simdutf/benchmarks/src/event_counter.h +162 -0
- package/deps/simdutf/benchmarks/src/linux-perf-events.h +104 -0
- package/deps/simdutf/benchmarks/stream.cpp +209 -0
- package/deps/simdutf/benchmarks/threaded.cpp +123 -0
- package/deps/simdutf/cmake/CPM.cmake +1363 -0
- package/deps/simdutf/cmake/JoinPaths.cmake +23 -0
- package/deps/simdutf/cmake/add_cpp_test.cmake +68 -0
- package/deps/simdutf/cmake/simdutf-config.cmake.in +2 -0
- package/deps/simdutf/cmake/simdutf-flags.cmake +26 -0
- package/deps/simdutf/cmake/toolchains-ci/riscv64-linux-gnu.cmake +4 -0
- package/deps/simdutf/cmake/toolchains-dev/README.md +32 -0
- package/deps/simdutf/cmake/toolchains-dev/aarch64.cmake +14 -0
- package/deps/simdutf/cmake/toolchains-dev/loongarch64.cmake +22 -0
- package/deps/simdutf/cmake/toolchains-dev/powerpc64.cmake +16 -0
- package/deps/simdutf/cmake/toolchains-dev/powerpc64le.cmake +16 -0
- package/deps/simdutf/cmake/toolchains-dev/riscv64.cmake +16 -0
- package/deps/simdutf/cmake/toolchains-dev/rvv-spike.cmake +38 -0
- package/deps/simdutf/doc/avx512.png +0 -0
- package/deps/simdutf/doc/logo.png +0 -0
- package/deps/simdutf/doc/logo.svg +165 -0
- package/deps/simdutf/doc/node2023.png +0 -0
- package/deps/simdutf/doc/shortinput.md +78 -0
- package/deps/simdutf/doc/utf16utf8.png +0 -0
- package/deps/simdutf/doc/utf8utf16.png +0 -0
- package/deps/simdutf/doc/widelogo.png +0 -0
- package/deps/simdutf/doxygen.py +50 -0
- package/deps/simdutf/fuzz/.clang-format +9 -0
- package/deps/simdutf/fuzz/CMakeLists.txt +45 -0
- package/deps/simdutf/fuzz/README.md +168 -0
- package/deps/simdutf/fuzz/atomic_base64.cpp +448 -0
- package/deps/simdutf/fuzz/base64.cpp +278 -0
- package/deps/simdutf/fuzz/build.sh +83 -0
- package/deps/simdutf/fuzz/conversion.cpp +669 -0
- package/deps/simdutf/fuzz/helpers/.clang-format-ignore +1 -0
- package/deps/simdutf/fuzz/helpers/common.h +135 -0
- package/deps/simdutf/fuzz/helpers/nameof.hpp +1258 -0
- package/deps/simdutf/fuzz/main.cpp +72 -0
- package/deps/simdutf/fuzz/minimize_and_cleanse.sh +87 -0
- package/deps/simdutf/fuzz/misc.cpp +216 -0
- package/deps/simdutf/fuzz/random_fuzz.sh +154 -0
- package/deps/simdutf/fuzz/roundtrip.cpp +588 -0
- package/deps/simdutf/fuzz/safe_conversion.cpp +104 -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/riscv/Dockerfile +16 -0
- package/deps/simdutf/riscv/README.md +24 -0
- package/deps/simdutf/riscv/remove-docker-station +8 -0
- package/deps/simdutf/riscv/run-docker-station +31 -0
- package/deps/simdutf/scripts/.flake8 +2 -0
- package/deps/simdutf/scripts/Makefile +2 -0
- package/deps/simdutf/scripts/README_ADD_FUNCTION.md +49 -0
- package/deps/simdutf/scripts/add_function.py +330 -0
- package/deps/simdutf/scripts/amalgamation_tests.py +156 -0
- package/deps/simdutf/scripts/base64/Makefile +2 -0
- package/deps/simdutf/scripts/base64/README.md +2 -0
- package/deps/simdutf/scripts/base64/avx512.py +76 -0
- package/deps/simdutf/scripts/base64/neon_decode.py +143 -0
- package/deps/simdutf/scripts/base64/neon_generate_lut.py +101 -0
- package/deps/simdutf/scripts/base64/sse.py +252 -0
- package/deps/simdutf/scripts/base64/sseregular.py +160 -0
- package/deps/simdutf/scripts/base64/sseurl.py +283 -0
- package/deps/simdutf/scripts/base64/table.py +59 -0
- package/deps/simdutf/scripts/base64bench_print.py +145 -0
- package/deps/simdutf/scripts/benchmark-all.py +119 -0
- package/deps/simdutf/scripts/benchmark_print.py +324 -0
- package/deps/simdutf/scripts/check_feature_macros.py +156 -0
- package/deps/simdutf/scripts/check_typos.sh +13 -0
- package/deps/simdutf/scripts/clang_format.sh +35 -0
- package/deps/simdutf/scripts/clang_format_docker.sh +38 -0
- package/deps/simdutf/scripts/common.py +24 -0
- package/deps/simdutf/scripts/compilation_benchmark.py +55 -0
- package/deps/simdutf/scripts/compile_many_variations.sh +64 -0
- package/deps/simdutf/scripts/create_latex_table.py +62 -0
- package/deps/simdutf/scripts/docker/Dockerfile +14 -0
- package/deps/simdutf/scripts/docker/Makefile +9 -0
- package/deps/simdutf/scripts/docker/README.md +30 -0
- package/deps/simdutf/scripts/docker/llvm.gpg +0 -0
- package/deps/simdutf/scripts/ppc64_convert_utf16_to_utf8.py +155 -0
- package/deps/simdutf/scripts/prepare_doxygen.sh +21 -0
- package/deps/simdutf/scripts/release.py +197 -0
- package/deps/simdutf/scripts/shortinputplots.py +97 -0
- package/deps/simdutf/scripts/sse_convert_utf16_to_utf8.py +422 -0
- package/deps/simdutf/scripts/sse_convert_utf32_to_utf16.py +105 -0
- package/deps/simdutf/scripts/sse_utf8_utf16_decode.py +186 -0
- package/deps/simdutf/scripts/sse_validate_utf16le_proof.py +137 -0
- package/deps/simdutf/scripts/sse_validate_utf16le_testcases.py +129 -0
- package/deps/simdutf/scripts/table.py +207 -0
- package/deps/simdutf/scripts/tests/new.txt +33 -0
- package/deps/simdutf/scripts/tests/old.txt +33 -0
- package/deps/simdutf/scripts/tests/results.txt +272 -0
- package/deps/simdutf/simdutf.pc.in +11 -0
- package/deps/simdutf/singleheader/.flake8 +2 -0
- package/deps/simdutf/singleheader/CMakeLists.txt +64 -0
- package/deps/simdutf/singleheader/README-dev.md +81 -0
- package/deps/simdutf/singleheader/README.md +19 -0
- package/deps/simdutf/singleheader/amalgamate.py +513 -0
- package/deps/simdutf/singleheader/amalgamation_demo.c +59 -0
- package/deps/simdutf/singleheader/amalgamation_demo.cpp +54 -0
- package/deps/simdutf/singleheader/test-features.py +262 -0
- package/deps/simdutf/src/CMakeLists.txt +78 -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/deps/simdutf/tests/CMakeLists.txt +483 -0
- package/deps/simdutf/tests/atomic_base64_tests.cpp +2845 -0
- package/deps/simdutf/tests/base64_tests.cpp +3617 -0
- package/deps/simdutf/tests/basic_fuzzer.cpp +805 -0
- package/deps/simdutf/tests/bele_tests.cpp +182 -0
- package/deps/simdutf/tests/constexpr_base64_tests.cpp +387 -0
- package/deps/simdutf/tests/convert_latin1_to_utf16be_tests.cpp +52 -0
- package/deps/simdutf/tests/convert_latin1_to_utf16le_tests.cpp +80 -0
- package/deps/simdutf/tests/convert_latin1_to_utf32_tests.cpp +66 -0
- package/deps/simdutf/tests/convert_latin1_to_utf8_tests.cpp +120 -0
- package/deps/simdutf/tests/convert_utf16_to_utf8_safe_tests.cpp +203 -0
- package/deps/simdutf/tests/convert_utf16_to_utf8_with_replacement_tests.cpp +276 -0
- package/deps/simdutf/tests/convert_utf16be_to_latin1_tests.cpp +109 -0
- package/deps/simdutf/tests/convert_utf16be_to_latin1_tests_with_errors.cpp +136 -0
- package/deps/simdutf/tests/convert_utf16be_to_utf32_tests.cpp +193 -0
- package/deps/simdutf/tests/convert_utf16be_to_utf32_with_errors_tests.cpp +381 -0
- package/deps/simdutf/tests/convert_utf16be_to_utf8_tests.cpp +259 -0
- package/deps/simdutf/tests/convert_utf16be_to_utf8_with_errors_tests.cpp +266 -0
- package/deps/simdutf/tests/convert_utf16le_to_latin1_tests.cpp +148 -0
- package/deps/simdutf/tests/convert_utf16le_to_latin1_tests_with_errors.cpp +176 -0
- package/deps/simdutf/tests/convert_utf16le_to_utf32_tests.cpp +213 -0
- package/deps/simdutf/tests/convert_utf16le_to_utf32_with_errors_tests.cpp +318 -0
- package/deps/simdutf/tests/convert_utf16le_to_utf8_tests.cpp +343 -0
- package/deps/simdutf/tests/convert_utf16le_to_utf8_with_errors_tests.cpp +271 -0
- package/deps/simdutf/tests/convert_utf32_to_latin1_tests.cpp +111 -0
- package/deps/simdutf/tests/convert_utf32_to_latin1_with_errors_tests.cpp +96 -0
- package/deps/simdutf/tests/convert_utf32_to_utf16be_tests.cpp +148 -0
- package/deps/simdutf/tests/convert_utf32_to_utf16be_with_errors_tests.cpp +192 -0
- package/deps/simdutf/tests/convert_utf32_to_utf16le_tests.cpp +166 -0
- package/deps/simdutf/tests/convert_utf32_to_utf16le_with_errors_tests.cpp +215 -0
- package/deps/simdutf/tests/convert_utf32_to_utf8_tests.cpp +181 -0
- package/deps/simdutf/tests/convert_utf32_to_utf8_with_errors_tests.cpp +261 -0
- package/deps/simdutf/tests/convert_utf8_to_latin1_tests.cpp +516 -0
- package/deps/simdutf/tests/convert_utf8_to_latin1_with_errors_tests.cpp +579 -0
- package/deps/simdutf/tests/convert_utf8_to_utf16be_tests.cpp +412 -0
- package/deps/simdutf/tests/convert_utf8_to_utf16be_with_errors_tests.cpp +480 -0
- package/deps/simdutf/tests/convert_utf8_to_utf16le_tests.cpp +671 -0
- package/deps/simdutf/tests/convert_utf8_to_utf16le_with_errors_tests.cpp +455 -0
- package/deps/simdutf/tests/convert_utf8_to_utf32_tests.cpp +1204 -0
- package/deps/simdutf/tests/convert_utf8_to_utf32_with_errors_tests.cpp +337 -0
- package/deps/simdutf/tests/convert_valid_utf16be_to_latin1_tests.cpp +37 -0
- package/deps/simdutf/tests/convert_valid_utf16be_to_utf32_tests.cpp +97 -0
- package/deps/simdutf/tests/convert_valid_utf16be_to_utf8_tests.cpp +126 -0
- package/deps/simdutf/tests/convert_valid_utf16le_to_latin1_tests.cpp +71 -0
- package/deps/simdutf/tests/convert_valid_utf16le_to_utf32_tests.cpp +122 -0
- package/deps/simdutf/tests/convert_valid_utf16le_to_utf8_tests.cpp +244 -0
- package/deps/simdutf/tests/convert_valid_utf32_to_latin1_tests.cpp +49 -0
- package/deps/simdutf/tests/convert_valid_utf32_to_utf16be_tests.cpp +92 -0
- package/deps/simdutf/tests/convert_valid_utf32_to_utf16le_tests.cpp +114 -0
- package/deps/simdutf/tests/convert_valid_utf32_to_utf8_tests.cpp +109 -0
- package/deps/simdutf/tests/convert_valid_utf8_to_latin1_tests.cpp +84 -0
- package/deps/simdutf/tests/convert_valid_utf8_to_utf16be_tests.cpp +124 -0
- package/deps/simdutf/tests/convert_valid_utf8_to_utf16le_tests.cpp +221 -0
- package/deps/simdutf/tests/convert_valid_utf8_to_utf32_tests.cpp +155 -0
- package/deps/simdutf/tests/count_utf16be.cpp +64 -0
- package/deps/simdutf/tests/count_utf16le.cpp +61 -0
- package/deps/simdutf/tests/count_utf8.cpp +87 -0
- package/deps/simdutf/tests/detect_encodings_tests.cpp +312 -0
- package/deps/simdutf/tests/embed/valid_utf8.txt +1 -0
- package/deps/simdutf/tests/embed_tests.cpp +22 -0
- package/deps/simdutf/tests/find_tests.cpp +77 -0
- package/deps/simdutf/tests/fixed_string_tests.cpp +153 -0
- package/deps/simdutf/tests/helpers/CMakeLists.txt +25 -0
- package/deps/simdutf/tests/helpers/compiletime_conversions.h +222 -0
- package/deps/simdutf/tests/helpers/fixed_string.h +267 -0
- package/deps/simdutf/tests/helpers/random_int.cpp +30 -0
- package/deps/simdutf/tests/helpers/random_int.h +39 -0
- package/deps/simdutf/tests/helpers/random_utf16.cpp +123 -0
- package/deps/simdutf/tests/helpers/random_utf16.h +52 -0
- package/deps/simdutf/tests/helpers/random_utf32.cpp +41 -0
- package/deps/simdutf/tests/helpers/random_utf32.h +40 -0
- package/deps/simdutf/tests/helpers/random_utf8.cpp +93 -0
- package/deps/simdutf/tests/helpers/random_utf8.h +36 -0
- package/deps/simdutf/tests/helpers/test.cpp +231 -0
- package/deps/simdutf/tests/helpers/test.h +193 -0
- package/deps/simdutf/tests/helpers/transcode_test_base.cpp +1257 -0
- package/deps/simdutf/tests/helpers/transcode_test_base.h +683 -0
- package/deps/simdutf/tests/helpers/utf16.h +27 -0
- package/deps/simdutf/tests/installation_tests/find/CMakeLists.txt +43 -0
- package/deps/simdutf/tests/installation_tests/from_fetch/CMakeLists.txt +47 -0
- package/deps/simdutf/tests/internal_tests.cpp +27 -0
- package/deps/simdutf/tests/null_safety_tests.cpp +94 -0
- package/deps/simdutf/tests/random_fuzzer.cpp +779 -0
- package/deps/simdutf/tests/readme_tests.cpp +274 -0
- package/deps/simdutf/tests/reference/CMakeLists.txt +23 -0
- package/deps/simdutf/tests/reference/decode_utf16.h +81 -0
- package/deps/simdutf/tests/reference/decode_utf32.h +47 -0
- package/deps/simdutf/tests/reference/encode_latin1.cpp +1 -0
- package/deps/simdutf/tests/reference/encode_latin1.h +32 -0
- package/deps/simdutf/tests/reference/encode_utf16.cpp +49 -0
- package/deps/simdutf/tests/reference/encode_utf16.h +20 -0
- package/deps/simdutf/tests/reference/encode_utf32.cpp +1 -0
- package/deps/simdutf/tests/reference/encode_utf32.h +36 -0
- package/deps/simdutf/tests/reference/encode_utf8.cpp +1 -0
- package/deps/simdutf/tests/reference/encode_utf8.h +40 -0
- package/deps/simdutf/tests/reference/validate_utf16.cpp +60 -0
- package/deps/simdutf/tests/reference/validate_utf16.h +14 -0
- package/deps/simdutf/tests/reference/validate_utf16_to_latin1.cpp +35 -0
- package/deps/simdutf/tests/reference/validate_utf16_to_latin1.h +13 -0
- package/deps/simdutf/tests/reference/validate_utf32.cpp +27 -0
- package/deps/simdutf/tests/reference/validate_utf32.h +12 -0
- package/deps/simdutf/tests/reference/validate_utf32_to_latin1.cpp +27 -0
- package/deps/simdutf/tests/reference/validate_utf32_to_latin1.h +12 -0
- package/deps/simdutf/tests/reference/validate_utf8.cpp +82 -0
- package/deps/simdutf/tests/reference/validate_utf8.h +11 -0
- package/deps/simdutf/tests/reference/validate_utf8_to_latin1.cpp +43 -0
- package/deps/simdutf/tests/reference/validate_utf8_to_latin1.h +12 -0
- package/deps/simdutf/tests/select_implementation.cpp +43 -0
- package/deps/simdutf/tests/simdutf_c_tests.cpp +244 -0
- package/deps/simdutf/tests/span_tests.cpp +401 -0
- package/deps/simdutf/tests/special_tests.cpp +559 -0
- package/deps/simdutf/tests/straight_c_test.c +187 -0
- package/deps/simdutf/tests/text_encoding_tests.cpp +77 -0
- package/deps/simdutf/tests/to_well_formed_utf16_tests.cpp +377 -0
- package/deps/simdutf/tests/utf8_length_from_utf16_tests.cpp +202 -0
- package/deps/simdutf/tests/validate_ascii_basic_tests.cpp +165 -0
- package/deps/simdutf/tests/validate_ascii_with_errors_tests.cpp +77 -0
- package/deps/simdutf/tests/validate_utf16be_basic_tests.cpp +175 -0
- package/deps/simdutf/tests/validate_utf16be_with_errors_tests.cpp +188 -0
- package/deps/simdutf/tests/validate_utf16le_basic_tests.cpp +268 -0
- package/deps/simdutf/tests/validate_utf16le_with_errors_tests.cpp +274 -0
- package/deps/simdutf/tests/validate_utf32_basic_tests.cpp +92 -0
- package/deps/simdutf/tests/validate_utf32_with_errors_tests.cpp +114 -0
- package/deps/simdutf/tests/validate_utf8_basic_tests.cpp +178 -0
- package/deps/simdutf/tests/validate_utf8_brute_force_tests.cpp +88 -0
- package/deps/simdutf/tests/validate_utf8_puzzler_tests.cpp +33 -0
- package/deps/simdutf/tests/validate_utf8_with_errors_tests.cpp +228 -0
- package/deps/simdutf/tools/CMakeLists.txt +85 -0
- package/deps/simdutf/tools/fastbase64.cpp +250 -0
- package/deps/simdutf/tools/sutf.cpp +556 -0
- package/deps/simdutf/tools/sutf.h +40 -0
- package/package.json +2 -2
|
@@ -0,0 +1,275 @@
|
|
|
1
|
+
#if SIMDUTF_FEATURE_ASCII
|
|
2
|
+
simdutf_warn_unused bool
|
|
3
|
+
implementation::validate_ascii(const char *src, size_t len) const noexcept {
|
|
4
|
+
size_t vlmax = __riscv_vsetvlmax_e8m8();
|
|
5
|
+
vint8m8_t mask = __riscv_vmv_v_x_i8m8(0, vlmax);
|
|
6
|
+
for (size_t vl; len > 0; len -= vl, src += vl) {
|
|
7
|
+
vl = __riscv_vsetvl_e8m8(len);
|
|
8
|
+
vint8m8_t v = __riscv_vle8_v_i8m8((int8_t *)src, vl);
|
|
9
|
+
mask = __riscv_vor_vv_i8m8_tu(mask, mask, v, vl);
|
|
10
|
+
}
|
|
11
|
+
return __riscv_vfirst_m_b1(__riscv_vmslt_vx_i8m8_b1(mask, 0, vlmax), vlmax) <
|
|
12
|
+
0;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
simdutf_warn_unused result implementation::validate_ascii_with_errors(
|
|
16
|
+
const char *src, size_t len) const noexcept {
|
|
17
|
+
const char *beg = src;
|
|
18
|
+
for (size_t vl; len > 0; len -= vl, src += vl) {
|
|
19
|
+
vl = __riscv_vsetvl_e8m8(len);
|
|
20
|
+
vint8m8_t v = __riscv_vle8_v_i8m8((int8_t *)src, vl);
|
|
21
|
+
long idx = __riscv_vfirst_m_b1(__riscv_vmslt_vx_i8m8_b1(v, 0, vl), vl);
|
|
22
|
+
if (idx >= 0)
|
|
23
|
+
return result(error_code::TOO_LARGE, src - beg + idx);
|
|
24
|
+
}
|
|
25
|
+
return result(error_code::SUCCESS, src - beg);
|
|
26
|
+
}
|
|
27
|
+
#endif // SIMDUTF_FEATURE_ASCII
|
|
28
|
+
#if SIMDUTF_FEATURE_UTF16 && SIMDUTF_FEATURE_ASCII
|
|
29
|
+
template <simdutf_ByteFlip bflip>
|
|
30
|
+
simdutf_really_inline bool rvv_validate_utf16_as_ascii(const char16_t *buf,
|
|
31
|
+
size_t len) noexcept {
|
|
32
|
+
const char16_t *src = buf;
|
|
33
|
+
for (size_t vl; len > 0; len -= vl, src += vl) {
|
|
34
|
+
vl = __riscv_vsetvl_e16m8(len);
|
|
35
|
+
vuint16m8_t v = __riscv_vle16_v_u16m8((uint16_t *)src, vl);
|
|
36
|
+
v = simdutf_byteflip<bflip>(v, vl);
|
|
37
|
+
long idx = __riscv_vfirst_m_b2(__riscv_vmsgtu_vx_u16m8_b2(v, 0x7f, vl), vl);
|
|
38
|
+
if (idx >= 0)
|
|
39
|
+
return false;
|
|
40
|
+
}
|
|
41
|
+
return true;
|
|
42
|
+
}
|
|
43
|
+
simdutf_warn_unused bool
|
|
44
|
+
implementation::validate_utf16le_as_ascii(const char16_t *buf,
|
|
45
|
+
size_t len) const noexcept {
|
|
46
|
+
return rvv_validate_utf16_as_ascii<simdutf_ByteFlip::NONE>(buf, len);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
simdutf_warn_unused bool
|
|
50
|
+
implementation::validate_utf16be_as_ascii(const char16_t *buf,
|
|
51
|
+
size_t len) const noexcept {
|
|
52
|
+
if (supports_zvbb())
|
|
53
|
+
return rvv_validate_utf16_as_ascii<simdutf_ByteFlip::ZVBB>(buf, len);
|
|
54
|
+
else
|
|
55
|
+
return rvv_validate_utf16_as_ascii<simdutf_ByteFlip::V>(buf, len);
|
|
56
|
+
}
|
|
57
|
+
#endif // SIMDUTF_FEATURE_UTF16 && SIMDUTF_FEATURE_ASCII
|
|
58
|
+
#if SIMDUTF_FEATURE_UTF8 || SIMDUTF_FEATURE_DETECT_ENCODING
|
|
59
|
+
/* Returns a close estimation of the number of valid UTF-8 bytes up to the
|
|
60
|
+
* first invalid one, but never overestimating. */
|
|
61
|
+
simdutf_really_inline static size_t rvv_count_valid_utf8(const char *src,
|
|
62
|
+
size_t len) {
|
|
63
|
+
const char *beg = src;
|
|
64
|
+
if (len < 32)
|
|
65
|
+
return 0;
|
|
66
|
+
|
|
67
|
+
/* validate first three bytes */
|
|
68
|
+
{
|
|
69
|
+
size_t idx = 3;
|
|
70
|
+
while (idx < len && (uint8_t(src[idx]) >> 6) == 0b10)
|
|
71
|
+
++idx;
|
|
72
|
+
if (idx > 3 + 3 || !scalar::utf8::validate(src, idx))
|
|
73
|
+
return 0;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
static const uint64_t err1m[] = {0x0202020202020202, 0x4915012180808080};
|
|
77
|
+
static const uint64_t err2m[] = {0xCBCBCB8B8383A3E7, 0xCBCBDBCBCBCBCBCB};
|
|
78
|
+
static const uint64_t err3m[] = {0x0101010101010101, 0X01010101BABAAEE6};
|
|
79
|
+
|
|
80
|
+
const vuint8m1_t err1tbl =
|
|
81
|
+
__riscv_vreinterpret_v_u64m1_u8m1(__riscv_vle64_v_u64m1(err1m, 2));
|
|
82
|
+
const vuint8m1_t err2tbl =
|
|
83
|
+
__riscv_vreinterpret_v_u64m1_u8m1(__riscv_vle64_v_u64m1(err2m, 2));
|
|
84
|
+
const vuint8m1_t err3tbl =
|
|
85
|
+
__riscv_vreinterpret_v_u64m1_u8m1(__riscv_vle64_v_u64m1(err3m, 2));
|
|
86
|
+
|
|
87
|
+
size_t tail = 3;
|
|
88
|
+
size_t n = len - tail;
|
|
89
|
+
|
|
90
|
+
for (size_t vl; n > 0; n -= vl, src += vl) {
|
|
91
|
+
vl = __riscv_vsetvl_e8m4(n);
|
|
92
|
+
vuint8m4_t v0 = __riscv_vle8_v_u8m4((uint8_t const *)src, vl);
|
|
93
|
+
|
|
94
|
+
uint8_t next0 = src[vl + 0];
|
|
95
|
+
uint8_t next1 = src[vl + 1];
|
|
96
|
+
uint8_t next2 = src[vl + 2];
|
|
97
|
+
|
|
98
|
+
/* fast path: ASCII */
|
|
99
|
+
if (__riscv_vfirst_m_b2(__riscv_vmsgtu_vx_u8m4_b2(v0, 0b01111111, vl), vl) <
|
|
100
|
+
0 &&
|
|
101
|
+
(next0 | next1 | next2) < 0b10000000)
|
|
102
|
+
continue;
|
|
103
|
+
|
|
104
|
+
/* see "Validating UTF-8 In Less Than One Instruction Per Byte"
|
|
105
|
+
* https://arxiv.org/abs/2010.03090 */
|
|
106
|
+
vuint8m4_t v1 = __riscv_vslide1down_vx_u8m4(v0, next0, vl);
|
|
107
|
+
vuint8m4_t v2 = __riscv_vslide1down_vx_u8m4(v1, next1, vl);
|
|
108
|
+
|
|
109
|
+
vuint8m4_t v2_hi_nibble = __riscv_vsrl_vx_u8m4(v2, 4, vl);
|
|
110
|
+
vuint8m4_t v3_hi_nibble =
|
|
111
|
+
__riscv_vslide1down_vx_u8m4(v2_hi_nibble, next2 >> 4, vl);
|
|
112
|
+
|
|
113
|
+
vuint8m4_t idx2 = __riscv_vand_vx_u8m4(v2, 0xF, vl);
|
|
114
|
+
vuint8m4_t idx1 = v2_hi_nibble;
|
|
115
|
+
vuint8m4_t idx3 = v3_hi_nibble;
|
|
116
|
+
|
|
117
|
+
vuint8m4_t err1 = simdutf_vrgather_u8m1x4(err1tbl, idx1);
|
|
118
|
+
vuint8m4_t err2 = simdutf_vrgather_u8m1x4(err2tbl, idx2);
|
|
119
|
+
vuint8m4_t err3 = simdutf_vrgather_u8m1x4(err3tbl, idx3);
|
|
120
|
+
vint8m4_t errs = __riscv_vreinterpret_v_u8m4_i8m4(
|
|
121
|
+
__riscv_vand_vv_u8m4(__riscv_vand_vv_u8m4(err1, err2, vl), err3, vl));
|
|
122
|
+
|
|
123
|
+
vbool2_t is_3 = __riscv_vmsgtu_vx_u8m4_b2(v1, 0b11100000 - 1, vl);
|
|
124
|
+
vbool2_t is_4 = __riscv_vmsgtu_vx_u8m4_b2(v0, 0b11110000 - 1, vl);
|
|
125
|
+
vbool2_t is_34 = __riscv_vmor_mm_b2(is_3, is_4, vl);
|
|
126
|
+
vbool2_t err34 =
|
|
127
|
+
__riscv_vmxor_mm_b2(is_34, __riscv_vmslt_vx_i8m4_b2(errs, 0, vl), vl);
|
|
128
|
+
vbool2_t errm =
|
|
129
|
+
__riscv_vmor_mm_b2(__riscv_vmsgt_vx_i8m4_b2(errs, 0, vl), err34, vl);
|
|
130
|
+
if (__riscv_vfirst_m_b2(errm, vl) >= 0)
|
|
131
|
+
break;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
/* we need to validate the last character */
|
|
135
|
+
while (tail < len && (uint8_t(src[0]) >> 6) == 0b10)
|
|
136
|
+
--src, ++tail;
|
|
137
|
+
return src - beg;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
simdutf_warn_unused bool
|
|
141
|
+
implementation::validate_utf8(const char *src, size_t len) const noexcept {
|
|
142
|
+
size_t count = rvv_count_valid_utf8(src, len);
|
|
143
|
+
return scalar::utf8::validate(src + count, len - count);
|
|
144
|
+
}
|
|
145
|
+
#endif // SIMDUTF_FEATURE_UTF8 || SIMDUTF_FEATURE_DETECT_ENCODING
|
|
146
|
+
|
|
147
|
+
#if SIMDUTF_FEATURE_UTF8
|
|
148
|
+
simdutf_warn_unused result implementation::validate_utf8_with_errors(
|
|
149
|
+
const char *src, size_t len) const noexcept {
|
|
150
|
+
size_t count = rvv_count_valid_utf8(src, len);
|
|
151
|
+
result res = scalar::utf8::validate_with_errors(src + count, len - count);
|
|
152
|
+
return result(res.error, count + res.count);
|
|
153
|
+
}
|
|
154
|
+
#endif // SIMDUTF_FEATURE_UTF8
|
|
155
|
+
|
|
156
|
+
#if SIMDUTF_FEATURE_UTF16 || SIMDUTF_FEATURE_DETECT_ENCODING
|
|
157
|
+
template <simdutf_ByteFlip bflip>
|
|
158
|
+
simdutf_really_inline static result
|
|
159
|
+
rvv_validate_utf16_with_errors(const char16_t *src, size_t len) {
|
|
160
|
+
const char16_t *beg = src;
|
|
161
|
+
|
|
162
|
+
const uint16_t mask = simdutf_byteflip<bflip>(0xfc00);
|
|
163
|
+
const uint16_t hi_surrogate = simdutf_byteflip<bflip>(0xd800);
|
|
164
|
+
const uint16_t lo_surrogate = simdutf_byteflip<bflip>(0xdc00);
|
|
165
|
+
|
|
166
|
+
uint16_t last = 0;
|
|
167
|
+
for (size_t vl; len > 0; len -= vl, src += vl, last = src[-1]) {
|
|
168
|
+
vl = __riscv_vsetvl_e16m8(len);
|
|
169
|
+
vuint16m8_t v1 = __riscv_vle16_v_u16m8((const uint16_t *)src, vl);
|
|
170
|
+
vuint16m8_t v0 = __riscv_vslide1up_vx_u16m8(v1, last, vl);
|
|
171
|
+
|
|
172
|
+
vbool2_t surhi = __riscv_vmseq_vx_u16m8_b2(
|
|
173
|
+
__riscv_vand_vx_u16m8(v0, mask, vl), hi_surrogate, vl);
|
|
174
|
+
vbool2_t surlo = __riscv_vmseq_vx_u16m8_b2(
|
|
175
|
+
__riscv_vand_vx_u16m8(v1, mask, vl), lo_surrogate, vl);
|
|
176
|
+
|
|
177
|
+
long idx = __riscv_vfirst_m_b2(__riscv_vmxor_mm_b2(surhi, surlo, vl), vl);
|
|
178
|
+
if (idx >= 0) {
|
|
179
|
+
last = simdutf_byteflip<bflip>(idx > 0 ? src[idx - 1] : last);
|
|
180
|
+
return result(error_code::SURROGATE,
|
|
181
|
+
src - beg + idx - (last - 0xD800u < 0x400u));
|
|
182
|
+
break;
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
if (simdutf_byteflip<bflip>(last) - 0xD800u < 0x400u) {
|
|
186
|
+
return result(error_code::SURROGATE,
|
|
187
|
+
src - beg - 1); /* end on high surrogate */
|
|
188
|
+
} else {
|
|
189
|
+
return result(error_code::SUCCESS, src - beg);
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
#endif // SIMDUTF_FEATURE_UTF16 || SIMDUTF_FEATURE_DETECT_ENCODING
|
|
193
|
+
|
|
194
|
+
#if SIMDUTF_FEATURE_UTF16 || SIMDUTF_FEATURE_DETECT_ENCODING
|
|
195
|
+
simdutf_warn_unused bool
|
|
196
|
+
implementation::validate_utf16le(const char16_t *src,
|
|
197
|
+
size_t len) const noexcept {
|
|
198
|
+
return rvv_validate_utf16_with_errors<simdutf_ByteFlip::NONE>(src, len)
|
|
199
|
+
.error == error_code::SUCCESS;
|
|
200
|
+
}
|
|
201
|
+
#endif // SIMDUTF_FEATURE_UTF16 || SIMDUTF_FEATURE_DETECT_ENCODING
|
|
202
|
+
|
|
203
|
+
#if SIMDUTF_FEATURE_UTF16
|
|
204
|
+
simdutf_warn_unused bool
|
|
205
|
+
implementation::validate_utf16be(const char16_t *src,
|
|
206
|
+
size_t len) const noexcept {
|
|
207
|
+
return validate_utf16be_with_errors(src, len).error == error_code::SUCCESS;
|
|
208
|
+
}
|
|
209
|
+
#endif // SIMDUTF_FEATURE_UTF16
|
|
210
|
+
|
|
211
|
+
#if SIMDUTF_FEATURE_UTF16
|
|
212
|
+
simdutf_warn_unused result implementation::validate_utf16le_with_errors(
|
|
213
|
+
const char16_t *src, size_t len) const noexcept {
|
|
214
|
+
return rvv_validate_utf16_with_errors<simdutf_ByteFlip::NONE>(src, len);
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
simdutf_warn_unused result implementation::validate_utf16be_with_errors(
|
|
218
|
+
const char16_t *src, size_t len) const noexcept {
|
|
219
|
+
if (supports_zvbb())
|
|
220
|
+
return rvv_validate_utf16_with_errors<simdutf_ByteFlip::ZVBB>(src, len);
|
|
221
|
+
else
|
|
222
|
+
return rvv_validate_utf16_with_errors<simdutf_ByteFlip::V>(src, len);
|
|
223
|
+
}
|
|
224
|
+
#endif // SIMDUTF_FEATURE_UTF16
|
|
225
|
+
|
|
226
|
+
#if SIMDUTF_FEATURE_UTF32 || SIMDUTF_FEATURE_DETECT_ENCODING
|
|
227
|
+
simdutf_warn_unused bool
|
|
228
|
+
implementation::validate_utf32(const char32_t *src, size_t len) const noexcept {
|
|
229
|
+
size_t vlmax = __riscv_vsetvlmax_e32m8();
|
|
230
|
+
vuint32m8_t max = __riscv_vmv_v_x_u32m8(0x10FFFF, vlmax);
|
|
231
|
+
vuint32m8_t maxOff = __riscv_vmv_v_x_u32m8(0xFFFFF7FF, vlmax);
|
|
232
|
+
for (size_t vl; len > 0; len -= vl, src += vl) {
|
|
233
|
+
vl = __riscv_vsetvl_e32m8(len);
|
|
234
|
+
vuint32m8_t v = __riscv_vle32_v_u32m8((uint32_t *)src, vl);
|
|
235
|
+
vuint32m8_t off = __riscv_vadd_vx_u32m8(v, 0xFFFF2000, vl);
|
|
236
|
+
max = __riscv_vmaxu_vv_u32m8_tu(max, max, v, vl);
|
|
237
|
+
maxOff = __riscv_vmaxu_vv_u32m8_tu(maxOff, maxOff, off, vl);
|
|
238
|
+
}
|
|
239
|
+
return __riscv_vfirst_m_b4(
|
|
240
|
+
__riscv_vmor_mm_b4(
|
|
241
|
+
__riscv_vmsne_vx_u32m8_b4(max, 0x10FFFF, vlmax),
|
|
242
|
+
__riscv_vmsne_vx_u32m8_b4(maxOff, 0xFFFFF7FF, vlmax), vlmax),
|
|
243
|
+
vlmax) < 0;
|
|
244
|
+
}
|
|
245
|
+
#endif // SIMDUTF_FEATURE_UTF32 || SIMDUTF_FEATURE_DETECT_ENCODING
|
|
246
|
+
|
|
247
|
+
#if SIMDUTF_FEATURE_UTF32
|
|
248
|
+
simdutf_warn_unused result implementation::validate_utf32_with_errors(
|
|
249
|
+
const char32_t *src, size_t len) const noexcept {
|
|
250
|
+
const char32_t *beg = src;
|
|
251
|
+
for (size_t vl; len > 0; len -= vl, src += vl) {
|
|
252
|
+
vl = __riscv_vsetvl_e32m8(len);
|
|
253
|
+
vuint32m8_t v = __riscv_vle32_v_u32m8((uint32_t *)src, vl);
|
|
254
|
+
vuint32m8_t off = __riscv_vadd_vx_u32m8(v, 0xFFFF2000, vl);
|
|
255
|
+
long idx1 =
|
|
256
|
+
__riscv_vfirst_m_b4(__riscv_vmsgtu_vx_u32m8_b4(v, 0x10FFFF, vl), vl);
|
|
257
|
+
long idx2 = __riscv_vfirst_m_b4(
|
|
258
|
+
__riscv_vmsgtu_vx_u32m8_b4(off, 0xFFFFF7FF, vl), vl);
|
|
259
|
+
if (idx1 >= 0 && idx2 >= 0) {
|
|
260
|
+
if (idx1 <= idx2) {
|
|
261
|
+
return result(error_code::TOO_LARGE, src - beg + idx1);
|
|
262
|
+
} else {
|
|
263
|
+
return result(error_code::SURROGATE, src - beg + idx2);
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
if (idx1 >= 0) {
|
|
267
|
+
return result(error_code::TOO_LARGE, src - beg + idx1);
|
|
268
|
+
}
|
|
269
|
+
if (idx2 >= 0) {
|
|
270
|
+
return result(error_code::SURROGATE, src - beg + idx2);
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
return result(error_code::SUCCESS, src - beg);
|
|
274
|
+
}
|
|
275
|
+
#endif // SIMDUTF_FEATURE_UTF32
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
#ifndef SIMDUTF_ARM64_BITMANIPULATION_H
|
|
2
|
+
#define SIMDUTF_ARM64_BITMANIPULATION_H
|
|
3
|
+
|
|
4
|
+
namespace simdutf {
|
|
5
|
+
namespace SIMDUTF_IMPLEMENTATION {
|
|
6
|
+
namespace {
|
|
7
|
+
|
|
8
|
+
/* result might be undefined when input_num is zero */
|
|
9
|
+
simdutf_really_inline int count_ones(uint64_t input_num) {
|
|
10
|
+
return vaddv_u8(vcnt_u8(vcreate_u8(input_num)));
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
#if SIMDUTF_NEED_TRAILING_ZEROES
|
|
14
|
+
simdutf_really_inline int trailing_zeroes(uint64_t input_num) {
|
|
15
|
+
#ifdef SIMDUTF_REGULAR_VISUAL_STUDIO
|
|
16
|
+
unsigned long ret;
|
|
17
|
+
// Search the mask data from least significant bit (LSB)
|
|
18
|
+
// to the most significant bit (MSB) for a set bit (1).
|
|
19
|
+
_BitScanForward64(&ret, input_num);
|
|
20
|
+
return (int)ret;
|
|
21
|
+
#else // SIMDUTF_REGULAR_VISUAL_STUDIO
|
|
22
|
+
return __builtin_ctzll(input_num);
|
|
23
|
+
#endif // SIMDUTF_REGULAR_VISUAL_STUDIO
|
|
24
|
+
}
|
|
25
|
+
#endif
|
|
26
|
+
template <typename T> T clear_least_significant_bit(T x) {
|
|
27
|
+
return (x & (x - 1));
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
} // unnamed namespace
|
|
31
|
+
} // namespace SIMDUTF_IMPLEMENTATION
|
|
32
|
+
} // namespace simdutf
|
|
33
|
+
|
|
34
|
+
#endif // SIMDUTF_ARM64_BITMANIPULATION_H
|
|
@@ -0,0 +1,307 @@
|
|
|
1
|
+
#ifndef SIMDUTF_ARM64_IMPLEMENTATION_H
|
|
2
|
+
#define SIMDUTF_ARM64_IMPLEMENTATION_H
|
|
3
|
+
|
|
4
|
+
#include "simdutf.h"
|
|
5
|
+
#include "simdutf/internal/isadetection.h"
|
|
6
|
+
|
|
7
|
+
namespace simdutf {
|
|
8
|
+
namespace arm64 {
|
|
9
|
+
|
|
10
|
+
namespace {
|
|
11
|
+
using namespace simdutf;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
class implementation final : public simdutf::implementation {
|
|
15
|
+
public:
|
|
16
|
+
simdutf_really_inline implementation()
|
|
17
|
+
: simdutf::implementation("arm64", "ARM NEON",
|
|
18
|
+
internal::instruction_set::NEON) {}
|
|
19
|
+
#if SIMDUTF_FEATURE_DETECT_ENCODING
|
|
20
|
+
simdutf_warn_unused int detect_encodings(const char *input,
|
|
21
|
+
size_t length) const noexcept final;
|
|
22
|
+
#endif // SIMDUTF_FEATURE_DETECT_ENCODING
|
|
23
|
+
#if SIMDUTF_FEATURE_UTF8 || SIMDUTF_FEATURE_DETECT_ENCODING
|
|
24
|
+
simdutf_warn_unused bool validate_utf8(const char *buf,
|
|
25
|
+
size_t len) const noexcept final;
|
|
26
|
+
#endif // SIMDUTF_FEATURE_UTF8 || SIMDUTF_FEATURE_DETECT_ENCODING
|
|
27
|
+
#if SIMDUTF_FEATURE_UTF8
|
|
28
|
+
simdutf_warn_unused result
|
|
29
|
+
validate_utf8_with_errors(const char *buf, size_t len) const noexcept final;
|
|
30
|
+
#endif // SIMDUTF_FEATURE_UTF8
|
|
31
|
+
#if SIMDUTF_FEATURE_ASCII
|
|
32
|
+
simdutf_warn_unused bool validate_ascii(const char *buf,
|
|
33
|
+
size_t len) const noexcept final;
|
|
34
|
+
simdutf_warn_unused result
|
|
35
|
+
validate_ascii_with_errors(const char *buf, size_t len) const noexcept final;
|
|
36
|
+
#endif // SIMDUTF_FEATURE_ASCII
|
|
37
|
+
#if SIMDUTF_FEATURE_UTF16 && SIMDUTF_FEATURE_ASCII
|
|
38
|
+
simdutf_warn_unused bool
|
|
39
|
+
validate_utf16le_as_ascii(const char16_t *buf,
|
|
40
|
+
size_t len) const noexcept final;
|
|
41
|
+
|
|
42
|
+
simdutf_warn_unused bool
|
|
43
|
+
validate_utf16be_as_ascii(const char16_t *buf,
|
|
44
|
+
size_t len) const noexcept final;
|
|
45
|
+
#endif // SIMDUTF_FEATURE_UTF16 && SIMDUTF_FEATURE_ASCII
|
|
46
|
+
#if SIMDUTF_FEATURE_UTF16 || SIMDUTF_FEATURE_DETECT_ENCODING
|
|
47
|
+
simdutf_warn_unused bool validate_utf16le(const char16_t *buf,
|
|
48
|
+
size_t len) const noexcept final;
|
|
49
|
+
#endif // SIMDUTF_FEATURE_UTF16 || SIMDUTF_FEATURE_DETECT_ENCODING
|
|
50
|
+
#if SIMDUTF_FEATURE_UTF16
|
|
51
|
+
simdutf_warn_unused bool validate_utf16be(const char16_t *buf,
|
|
52
|
+
size_t len) const noexcept final;
|
|
53
|
+
simdutf_warn_unused result validate_utf16le_with_errors(
|
|
54
|
+
const char16_t *buf, size_t len) const noexcept final;
|
|
55
|
+
simdutf_warn_unused result validate_utf16be_with_errors(
|
|
56
|
+
const char16_t *buf, size_t len) const noexcept final;
|
|
57
|
+
void to_well_formed_utf16be(const char16_t *input, size_t len,
|
|
58
|
+
char16_t *output) const noexcept final;
|
|
59
|
+
void to_well_formed_utf16le(const char16_t *input, size_t len,
|
|
60
|
+
char16_t *output) const noexcept final;
|
|
61
|
+
#endif // SIMDUTF_FEATURE_UTF16
|
|
62
|
+
#if SIMDUTF_FEATURE_UTF32 || SIMDUTF_FEATURE_DETECT_ENCODING
|
|
63
|
+
simdutf_warn_unused bool validate_utf32(const char32_t *buf,
|
|
64
|
+
size_t len) const noexcept final;
|
|
65
|
+
#endif // SIMDUTF_FEATURE_UTF32 || SIMDUTF_FEATURE_DETECT_ENCODING
|
|
66
|
+
#if SIMDUTF_FEATURE_UTF32
|
|
67
|
+
simdutf_warn_unused result validate_utf32_with_errors(
|
|
68
|
+
const char32_t *buf, size_t len) const noexcept final;
|
|
69
|
+
#endif // SIMDUTF_FEATURE_UTF32
|
|
70
|
+
#if SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_LATIN1
|
|
71
|
+
simdutf_warn_unused size_t convert_latin1_to_utf8(
|
|
72
|
+
const char *buf, size_t len, char *utf8_output) const noexcept final;
|
|
73
|
+
#endif // SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_LATIN1
|
|
74
|
+
#if SIMDUTF_FEATURE_UTF16 && SIMDUTF_FEATURE_LATIN1
|
|
75
|
+
simdutf_warn_unused size_t convert_latin1_to_utf16le(
|
|
76
|
+
const char *buf, size_t len, char16_t *utf16_buffer) const noexcept final;
|
|
77
|
+
simdutf_warn_unused size_t convert_latin1_to_utf16be(
|
|
78
|
+
const char *buf, size_t len, char16_t *utf16_buffer) const noexcept final;
|
|
79
|
+
#endif // SIMDUTF_FEATURE_UTF16 && SIMDUTF_FEATURE_LATIN1
|
|
80
|
+
#if SIMDUTF_FEATURE_UTF32 && SIMDUTF_FEATURE_LATIN1
|
|
81
|
+
simdutf_warn_unused size_t convert_latin1_to_utf32(
|
|
82
|
+
const char *buf, size_t len, char32_t *utf32_output) const noexcept final;
|
|
83
|
+
#endif // SIMDUTF_FEATURE_UTF32 && SIMDUTF_FEATURE_LATIN1
|
|
84
|
+
#if SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_LATIN1
|
|
85
|
+
simdutf_warn_unused size_t convert_utf8_to_latin1(
|
|
86
|
+
const char *buf, size_t len, char *latin1_output) const noexcept final;
|
|
87
|
+
simdutf_warn_unused result convert_utf8_to_latin1_with_errors(
|
|
88
|
+
const char *buf, size_t len, char *latin1_buffer) const noexcept final;
|
|
89
|
+
simdutf_warn_unused size_t convert_valid_utf8_to_latin1(
|
|
90
|
+
const char *buf, size_t len, char *latin1_output) const noexcept final;
|
|
91
|
+
#endif // SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_LATIN1
|
|
92
|
+
#if SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_UTF16
|
|
93
|
+
simdutf_warn_unused size_t convert_utf8_to_utf16le(
|
|
94
|
+
const char *buf, size_t len, char16_t *utf16_output) const noexcept final;
|
|
95
|
+
simdutf_warn_unused size_t convert_utf8_to_utf16be(
|
|
96
|
+
const char *buf, size_t len, char16_t *utf16_output) const noexcept final;
|
|
97
|
+
simdutf_warn_unused result convert_utf8_to_utf16le_with_errors(
|
|
98
|
+
const char *buf, size_t len, char16_t *utf16_output) const noexcept final;
|
|
99
|
+
simdutf_warn_unused result convert_utf8_to_utf16be_with_errors(
|
|
100
|
+
const char *buf, size_t len, char16_t *utf16_output) const noexcept final;
|
|
101
|
+
simdutf_warn_unused size_t convert_valid_utf8_to_utf16le(
|
|
102
|
+
const char *buf, size_t len, char16_t *utf16_buffer) const noexcept final;
|
|
103
|
+
simdutf_warn_unused size_t convert_valid_utf8_to_utf16be(
|
|
104
|
+
const char *buf, size_t len, char16_t *utf16_buffer) const noexcept final;
|
|
105
|
+
#endif // SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_UTF16
|
|
106
|
+
#if SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_UTF32
|
|
107
|
+
simdutf_warn_unused size_t convert_utf8_to_utf32(
|
|
108
|
+
const char *buf, size_t len, char32_t *utf32_output) const noexcept final;
|
|
109
|
+
simdutf_warn_unused result convert_utf8_to_utf32_with_errors(
|
|
110
|
+
const char *buf, size_t len, char32_t *utf32_output) const noexcept final;
|
|
111
|
+
simdutf_warn_unused size_t convert_valid_utf8_to_utf32(
|
|
112
|
+
const char *buf, size_t len, char32_t *utf32_buffer) const noexcept final;
|
|
113
|
+
#endif // SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_UTF32
|
|
114
|
+
#if SIMDUTF_FEATURE_UTF16 && SIMDUTF_FEATURE_LATIN1
|
|
115
|
+
simdutf_warn_unused size_t
|
|
116
|
+
convert_utf16le_to_latin1(const char16_t *buf, size_t len,
|
|
117
|
+
char *latin1_buffer) const noexcept final;
|
|
118
|
+
simdutf_warn_unused size_t
|
|
119
|
+
convert_utf16be_to_latin1(const char16_t *buf, size_t len,
|
|
120
|
+
char *latin1_buffer) const noexcept final;
|
|
121
|
+
simdutf_warn_unused result convert_utf16le_to_latin1_with_errors(
|
|
122
|
+
const char16_t *buf, size_t len,
|
|
123
|
+
char *latin1_buffer) const noexcept final;
|
|
124
|
+
simdutf_warn_unused result convert_utf16be_to_latin1_with_errors(
|
|
125
|
+
const char16_t *buf, size_t len,
|
|
126
|
+
char *latin1_buffer) const noexcept final;
|
|
127
|
+
simdutf_warn_unused size_t
|
|
128
|
+
convert_valid_utf16le_to_latin1(const char16_t *buf, size_t len,
|
|
129
|
+
char *latin1_buffer) const noexcept final;
|
|
130
|
+
simdutf_warn_unused size_t
|
|
131
|
+
convert_valid_utf16be_to_latin1(const char16_t *buf, size_t len,
|
|
132
|
+
char *latin1_buffer) const noexcept final;
|
|
133
|
+
#endif // SIMDUTF_FEATURE_UTF16 && SIMDUTF_FEATURE_LATIN1
|
|
134
|
+
#if SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_UTF16
|
|
135
|
+
simdutf_warn_unused size_t convert_utf16le_to_utf8(
|
|
136
|
+
const char16_t *buf, size_t len, char *utf8_buffer) const noexcept final;
|
|
137
|
+
simdutf_warn_unused size_t convert_utf16be_to_utf8(
|
|
138
|
+
const char16_t *buf, size_t len, char *utf8_buffer) const noexcept final;
|
|
139
|
+
simdutf_warn_unused result convert_utf16le_to_utf8_with_errors(
|
|
140
|
+
const char16_t *buf, size_t len, char *utf8_buffer) const noexcept final;
|
|
141
|
+
simdutf_warn_unused result convert_utf16be_to_utf8_with_errors(
|
|
142
|
+
const char16_t *buf, size_t len, char *utf8_buffer) const noexcept final;
|
|
143
|
+
simdutf_warn_unused size_t convert_valid_utf16le_to_utf8(
|
|
144
|
+
const char16_t *buf, size_t len, char *utf8_buffer) const noexcept final;
|
|
145
|
+
simdutf_warn_unused size_t convert_valid_utf16be_to_utf8(
|
|
146
|
+
const char16_t *buf, size_t len, char *utf8_buffer) const noexcept final;
|
|
147
|
+
#endif // SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_UTF16
|
|
148
|
+
#if SIMDUTF_FEATURE_UTF32 && SIMDUTF_FEATURE_LATIN1
|
|
149
|
+
simdutf_warn_unused size_t
|
|
150
|
+
convert_utf32_to_latin1(const char32_t *buf, size_t len,
|
|
151
|
+
char *latin1_output) const noexcept final;
|
|
152
|
+
simdutf_warn_unused result
|
|
153
|
+
convert_utf32_to_latin1_with_errors(const char32_t *buf, size_t len,
|
|
154
|
+
char *latin1_output) const noexcept final;
|
|
155
|
+
simdutf_warn_unused size_t
|
|
156
|
+
convert_valid_utf32_to_latin1(const char32_t *buf, size_t len,
|
|
157
|
+
char *latin1_output) const noexcept final;
|
|
158
|
+
#endif // SIMDUTF_FEATURE_UTF32 && SIMDUTF_FEATURE_LATIN1
|
|
159
|
+
#if SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_UTF32
|
|
160
|
+
simdutf_warn_unused size_t convert_utf32_to_utf8(
|
|
161
|
+
const char32_t *buf, size_t len, char *utf8_buffer) const noexcept final;
|
|
162
|
+
simdutf_warn_unused result convert_utf32_to_utf8_with_errors(
|
|
163
|
+
const char32_t *buf, size_t len, char *utf8_buffer) const noexcept final;
|
|
164
|
+
simdutf_warn_unused size_t convert_valid_utf32_to_utf8(
|
|
165
|
+
const char32_t *buf, size_t len, char *utf8_buffer) const noexcept final;
|
|
166
|
+
#endif // SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_UTF32
|
|
167
|
+
#if SIMDUTF_FEATURE_UTF16 && SIMDUTF_FEATURE_UTF32
|
|
168
|
+
simdutf_warn_unused size_t
|
|
169
|
+
convert_utf32_to_utf16le(const char32_t *buf, size_t len,
|
|
170
|
+
char16_t *utf16_buffer) const noexcept final;
|
|
171
|
+
simdutf_warn_unused size_t
|
|
172
|
+
convert_utf32_to_utf16be(const char32_t *buf, size_t len,
|
|
173
|
+
char16_t *utf16_buffer) const noexcept final;
|
|
174
|
+
simdutf_warn_unused result convert_utf32_to_utf16le_with_errors(
|
|
175
|
+
const char32_t *buf, size_t len,
|
|
176
|
+
char16_t *utf16_buffer) const noexcept final;
|
|
177
|
+
simdutf_warn_unused result convert_utf32_to_utf16be_with_errors(
|
|
178
|
+
const char32_t *buf, size_t len,
|
|
179
|
+
char16_t *utf16_buffer) const noexcept final;
|
|
180
|
+
simdutf_warn_unused size_t
|
|
181
|
+
convert_valid_utf32_to_utf16le(const char32_t *buf, size_t len,
|
|
182
|
+
char16_t *utf16_buffer) const noexcept final;
|
|
183
|
+
simdutf_warn_unused size_t
|
|
184
|
+
convert_valid_utf32_to_utf16be(const char32_t *buf, size_t len,
|
|
185
|
+
char16_t *utf16_buffer) const noexcept final;
|
|
186
|
+
simdutf_warn_unused size_t
|
|
187
|
+
convert_utf16le_to_utf32(const char16_t *buf, size_t len,
|
|
188
|
+
char32_t *utf32_buffer) const noexcept final;
|
|
189
|
+
simdutf_warn_unused size_t
|
|
190
|
+
convert_utf16be_to_utf32(const char16_t *buf, size_t len,
|
|
191
|
+
char32_t *utf32_buffer) const noexcept final;
|
|
192
|
+
simdutf_warn_unused result convert_utf16le_to_utf32_with_errors(
|
|
193
|
+
const char16_t *buf, size_t len,
|
|
194
|
+
char32_t *utf32_buffer) const noexcept final;
|
|
195
|
+
simdutf_warn_unused result convert_utf16be_to_utf32_with_errors(
|
|
196
|
+
const char16_t *buf, size_t len,
|
|
197
|
+
char32_t *utf32_buffer) const noexcept final;
|
|
198
|
+
simdutf_warn_unused size_t
|
|
199
|
+
convert_valid_utf16le_to_utf32(const char16_t *buf, size_t len,
|
|
200
|
+
char32_t *utf32_buffer) const noexcept final;
|
|
201
|
+
simdutf_warn_unused size_t
|
|
202
|
+
convert_valid_utf16be_to_utf32(const char16_t *buf, size_t len,
|
|
203
|
+
char32_t *utf32_buffer) const noexcept final;
|
|
204
|
+
#endif // SIMDUTF_FEATURE_UTF16 && SIMDUTF_FEATURE_UTF32
|
|
205
|
+
#if SIMDUTF_FEATURE_UTF16
|
|
206
|
+
void change_endianness_utf16(const char16_t *buf, size_t length,
|
|
207
|
+
char16_t *output) const noexcept final;
|
|
208
|
+
simdutf_warn_unused size_t
|
|
209
|
+
count_utf16le(const char16_t *buf, size_t length) const noexcept override;
|
|
210
|
+
simdutf_warn_unused size_t
|
|
211
|
+
count_utf16be(const char16_t *buf, size_t length) const noexcept override;
|
|
212
|
+
#endif // SIMDUTF_FEATURE_UTF16
|
|
213
|
+
#if SIMDUTF_FEATURE_UTF8
|
|
214
|
+
simdutf_warn_unused size_t count_utf8(const char *buf,
|
|
215
|
+
size_t length) const noexcept override;
|
|
216
|
+
#endif // SIMDUTF_FEATURE_UTF8
|
|
217
|
+
#if SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_UTF16
|
|
218
|
+
simdutf_warn_unused size_t utf8_length_from_utf16le(
|
|
219
|
+
const char16_t *input, size_t length) const noexcept override;
|
|
220
|
+
simdutf_warn_unused size_t utf8_length_from_utf16be(
|
|
221
|
+
const char16_t *input, size_t length) const noexcept override;
|
|
222
|
+
#endif // SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_UTF16
|
|
223
|
+
#if SIMDUTF_FEATURE_UTF16 && SIMDUTF_FEATURE_UTF32
|
|
224
|
+
simdutf_warn_unused size_t utf32_length_from_utf16le(
|
|
225
|
+
const char16_t *input, size_t length) const noexcept override;
|
|
226
|
+
simdutf_warn_unused size_t utf32_length_from_utf16be(
|
|
227
|
+
const char16_t *input, size_t length) const noexcept override;
|
|
228
|
+
#endif // SIMDUTF_FEATURE_UTF16 && SIMDUTF_FEATURE_UTF32
|
|
229
|
+
#if SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_UTF16
|
|
230
|
+
simdutf_warn_unused size_t utf16_length_from_utf8(
|
|
231
|
+
const char *input, size_t length) const noexcept override;
|
|
232
|
+
simdutf_warn_unused result utf8_length_from_utf16le_with_replacement(
|
|
233
|
+
const char16_t *input, size_t length) const noexcept override;
|
|
234
|
+
;
|
|
235
|
+
simdutf_warn_unused result utf8_length_from_utf16be_with_replacement(
|
|
236
|
+
const char16_t *input, size_t length) const noexcept override;
|
|
237
|
+
;
|
|
238
|
+
|
|
239
|
+
simdutf_warn_unused size_t convert_utf16le_to_utf8_with_replacement(
|
|
240
|
+
const char16_t *input, size_t length,
|
|
241
|
+
char *utf8_buffer) const noexcept override;
|
|
242
|
+
|
|
243
|
+
simdutf_warn_unused size_t convert_utf16be_to_utf8_with_replacement(
|
|
244
|
+
const char16_t *input, size_t length,
|
|
245
|
+
char *utf8_buffer) const noexcept override;
|
|
246
|
+
|
|
247
|
+
#endif // SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_UTF16
|
|
248
|
+
#if SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_UTF32
|
|
249
|
+
simdutf_warn_unused size_t utf8_length_from_utf32(
|
|
250
|
+
const char32_t *input, size_t length) const noexcept override;
|
|
251
|
+
#endif // SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_UTF32
|
|
252
|
+
#if SIMDUTF_FEATURE_UTF16 && SIMDUTF_FEATURE_UTF32
|
|
253
|
+
simdutf_warn_unused size_t utf16_length_from_utf32(
|
|
254
|
+
const char32_t *input, size_t length) const noexcept override;
|
|
255
|
+
#endif // SIMDUTF_FEATURE_UTF16 && SIMDUTF_FEATURE_UTF32
|
|
256
|
+
#if SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_UTF32
|
|
257
|
+
simdutf_warn_unused size_t utf32_length_from_utf8(
|
|
258
|
+
const char *input, size_t length) const noexcept override;
|
|
259
|
+
#endif // SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_UTF32
|
|
260
|
+
#if SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_LATIN1
|
|
261
|
+
simdutf_warn_unused size_t latin1_length_from_utf8(
|
|
262
|
+
const char *input, size_t length) const noexcept override;
|
|
263
|
+
#endif // SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_LATIN1
|
|
264
|
+
#if SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_LATIN1
|
|
265
|
+
simdutf_warn_unused size_t utf8_length_from_latin1(
|
|
266
|
+
const char *input, size_t length) const noexcept override;
|
|
267
|
+
#endif // SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_LATIN1
|
|
268
|
+
#if SIMDUTF_FEATURE_BASE64
|
|
269
|
+
simdutf_warn_unused result base64_to_binary(
|
|
270
|
+
const char *input, size_t length, char *output, base64_options options,
|
|
271
|
+
last_chunk_handling_options last_chunk_options =
|
|
272
|
+
last_chunk_handling_options::loose) const noexcept override;
|
|
273
|
+
simdutf_warn_unused full_result base64_to_binary_details(
|
|
274
|
+
const char *input, size_t length, char *output, base64_options options,
|
|
275
|
+
last_chunk_handling_options last_chunk_options =
|
|
276
|
+
last_chunk_handling_options::loose) const noexcept override;
|
|
277
|
+
simdutf_warn_unused result base64_to_binary(
|
|
278
|
+
const char16_t *input, size_t length, char *output,
|
|
279
|
+
base64_options options,
|
|
280
|
+
last_chunk_handling_options last_chunk_options =
|
|
281
|
+
last_chunk_handling_options::loose) const noexcept override;
|
|
282
|
+
simdutf_warn_unused full_result base64_to_binary_details(
|
|
283
|
+
const char16_t *input, size_t length, char *output,
|
|
284
|
+
base64_options options,
|
|
285
|
+
last_chunk_handling_options last_chunk_options =
|
|
286
|
+
last_chunk_handling_options::loose) const noexcept override;
|
|
287
|
+
size_t binary_to_base64(const char *input, size_t length, char *output,
|
|
288
|
+
base64_options options) const noexcept override;
|
|
289
|
+
size_t
|
|
290
|
+
binary_to_base64_with_lines(const char *input, size_t length, char *output,
|
|
291
|
+
size_t line_length,
|
|
292
|
+
base64_options options) const noexcept override;
|
|
293
|
+
const char *find(const char *start, const char *end,
|
|
294
|
+
char character) const noexcept override;
|
|
295
|
+
const char16_t *find(const char16_t *start, const char16_t *end,
|
|
296
|
+
char16_t character) const noexcept override;
|
|
297
|
+
simdutf_warn_unused size_t binary_length_from_base64(
|
|
298
|
+
const char *input, size_t length) const noexcept override;
|
|
299
|
+
simdutf_warn_unused size_t binary_length_from_base64(
|
|
300
|
+
const char16_t *input, size_t length) const noexcept override;
|
|
301
|
+
#endif // SIMDUTF_FEATURE_BASE64
|
|
302
|
+
};
|
|
303
|
+
|
|
304
|
+
} // namespace arm64
|
|
305
|
+
} // namespace simdutf
|
|
306
|
+
|
|
307
|
+
#endif // SIMDUTF_ARM64_IMPLEMENTATION_H
|