Skip to content

Commit

Permalink
deps: update simdutf to 5.2.4
Browse files Browse the repository at this point in the history
PR-URL: #52473
Reviewed-By: Richard Lau <rlau@redhat.com>
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com>
  • Loading branch information
nodejs-github-bot authored and marco-ippolito committed May 3, 2024
1 parent 8464c02 commit d34fd21
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 18 deletions.
12 changes: 10 additions & 2 deletions deps/simdutf/simdutf.cpp
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
/* auto-generated on 2024-04-05 16:29:02 -0400. Do not edit! */
/* auto-generated on 2024-04-11 09:56:55 -0400. Do not edit! */
/* begin file src/simdutf.cpp */
#include "simdutf.h"
// We include base64_tables once.
Expand Down Expand Up @@ -13665,7 +13665,6 @@ inline size_t convert(const char *buf, size_t len, char32_t *utf32_output) {
/* begin file src/scalar/utf8_to_latin1/utf8_to_latin1.h */
#ifndef SIMDUTF_UTF8_TO_LATIN1_H
#define SIMDUTF_UTF8_TO_LATIN1_H
#include <iostream>

namespace simdutf {
namespace scalar {
Expand Down Expand Up @@ -16715,8 +16714,17 @@ size_t encode_base64(char *dst, const char *src, size_t srclen,
'N', 'd', 't', '9', 'O', 'e', 'u', '-', 'P', 'f', 'v', '_',
};
const uint8x16_t v3f = vdupq_n_u8(0x3f);
#ifdef SIMDUTF_REGULAR_VISUAL_STUDIO
// When trying to load a uint8_t array, Visual Studio might
// error with: error C2664: '__n128x4 neon_ld4m_q8(const char *)':
// cannot convert argument 1 from 'const uint8_t [64]' to 'const char *
const uint8x16x4_t table =
vld4q_u8((reinterpret_cast<const char *>(
options & base64_url) ? source_table_url : source_table));
#else
const uint8x16x4_t table =
vld4q_u8((options & base64_url) ? source_table_url : source_table);
#endif
size_t i = 0;
for (; i + 16 * 3 <= srclen; i += 16 * 3) {
const uint8x16x3_t in = vld3q_u8((const uint8_t *)src + i);
Expand Down
45 changes: 29 additions & 16 deletions deps/simdutf/simdutf.h
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
/* auto-generated on 2024-04-05 16:29:02 -0400. Do not edit! */
/* auto-generated on 2024-04-11 09:56:55 -0400. Do not edit! */
/* begin file include/simdutf.h */
#ifndef SIMDUTF_H
#define SIMDUTF_H
Expand Down Expand Up @@ -130,9 +130,9 @@
#include <iso646.h>
#endif

#if defined(__x86_64__) || defined(_M_AMD64)
#if (defined(__x86_64__) || defined(_M_AMD64)) && !defined(_M_ARM64EC)
#define SIMDUTF_IS_X86_64 1
#elif defined(__aarch64__) || defined(_M_ARM64)
#elif defined(__aarch64__) || defined(_M_ARM64) || defined(_M_ARM64EC)
#define SIMDUTF_IS_ARM64 1
#elif defined(__PPC64__) || defined(_M_PPC64)
//#define SIMDUTF_IS_PPC64 1
Expand Down Expand Up @@ -594,7 +594,7 @@ SIMDUTF_DISABLE_UNDESIRED_WARNINGS
#define SIMDUTF_SIMDUTF_VERSION_H

/** The version of simdutf being used (major.minor.revision) */
#define SIMDUTF_VERSION "5.2.3"
#define SIMDUTF_VERSION "5.2.4"

namespace simdutf {
enum {
Expand All @@ -609,7 +609,7 @@ enum {
/**
* The revision (major.minor.REVISION) of simdutf being used.
*/
SIMDUTF_VERSION_REVISION = 3
SIMDUTF_VERSION_REVISION = 4
};
} // namespace simdutf

Expand Down Expand Up @@ -748,7 +748,7 @@ static inline uint32_t detect_supported_architectures() {
return host_isa;
}

#elif defined(__aarch64__) || defined(_M_ARM64)
#elif defined(__aarch64__) || defined(_M_ARM64) || defined(_M_ARM64EC)

static inline uint32_t detect_supported_architectures() {
return instruction_set::NEON;
Expand Down Expand Up @@ -1170,7 +1170,7 @@ simdutf_warn_unused result validate_utf32_with_errors(const char32_t *buf, size_
* @param input the UTF-8 string to convert
* @param length the length of the string in bytes
* @param latin1_output the pointer to buffer that can hold conversion result
* @return the number of written char; 0 if the input was not valid UTF-8 string
* @return the number of written char; 0 if the input was not valid UTF-8 string or if it cannot be represented as Latin1
*/
simdutf_warn_unused size_t convert_utf8_to_latin1(const char * input, size_t length, char* latin1_output) noexcept;

Expand Down Expand Up @@ -1227,6 +1227,8 @@ simdutf_warn_unused size_t convert_utf8_to_utf16be(const char * input, size_t le

/**
* Convert possibly broken UTF-8 string into latin1 string with errors.
* If the string cannot be represented as Latin1, an error
* code is returned.
*
* During the conversion also validation of the input string is done.
* This function is suitable to work with inputs from untrusted sources.
Expand Down Expand Up @@ -1446,12 +1448,14 @@ simdutf_warn_unused size_t convert_utf16_to_utf8(const char16_t * input, size_t
* @param input the UTF-16 string to convert
* @param length the length of the string in 2-byte code units (char16_t)
* @param latin1_buffer the pointer to buffer that can hold conversion result
* @return number of written code units; 0 if input is not a valid UTF-16LE string
* @return number of written code units; 0 if input is not a valid UTF-16 string or if it cannot be represented as Latin1
*/
simdutf_warn_unused size_t convert_utf16_to_latin1(const char16_t * input, size_t length, char* latin1_buffer) noexcept;

/**
* Convert possibly broken UTF-16LE string into Latin1 string.
* If the string cannot be represented as Latin1, an error
* is returned.
*
* During the conversion also validation of the input string is done.
* This function is suitable to work with inputs from untrusted sources.
Expand All @@ -1461,7 +1465,7 @@ simdutf_warn_unused size_t convert_utf16_to_latin1(const char16_t * input, size_
* @param input the UTF-16LE string to convert
* @param length the length of the string in 2-byte code units (char16_t)
* @param latin1_buffer the pointer to buffer that can hold conversion result
* @return number of written code units; 0 if input is not a valid UTF-16LE string
* @return number of written code units; 0 if input is not a valid UTF-16LE string or if it cannot be represented as Latin1
*/
simdutf_warn_unused size_t convert_utf16le_to_latin1(const char16_t * input, size_t length, char* latin1_buffer) noexcept;

Expand All @@ -1476,7 +1480,7 @@ simdutf_warn_unused size_t convert_utf16le_to_latin1(const char16_t * input, siz
* @param input the UTF-16BE string to convert
* @param length the length of the string in 2-byte code units (char16_t)
* @param latin1_buffer the pointer to buffer that can hold conversion result
* @return a result pair struct (of type simdutf::error containing the two fields error and count) with an error code and either position of the error (in the input in code units) if any, or the number of char written if successful.
* @return number of written code units; 0 if input is not a valid UTF-16BE string or if it cannot be represented as Latin1
*/
simdutf_warn_unused size_t convert_utf16be_to_latin1(const char16_t * input, size_t length, char* latin1_buffer) noexcept;

Expand Down Expand Up @@ -1541,6 +1545,8 @@ simdutf_warn_unused result convert_utf16le_to_latin1_with_errors(const char16_t

/**
* Convert possibly broken UTF-16BE string into Latin1 string.
* If the string cannot be represented as Latin1, an error
* is returned.
*
* During the conversion also validation of the input string is done.
* This function is suitable to work with inputs from untrusted sources.
Expand Down Expand Up @@ -1951,13 +1957,14 @@ simdutf_warn_unused size_t convert_utf32_to_utf16le(const char32_t * input, size
* @param input the UTF-32 string to convert
* @param length the length of the string in 4-byte code units (char32_t)
* @param latin1_buffer the pointer to buffer that can hold conversion result
* @return number of written code units; 0 if input is not a valid UTF-32 string
* @return number of written code units; 0 if input is not a valid UTF-32 string or if it cannot be represented as Latin1
*/
simdutf_warn_unused size_t convert_utf32_to_latin1(const char32_t * input, size_t length, char* latin1_buffer) noexcept;


/**
* Convert possibly broken UTF-32 string into Latin1 string and stop on error.
* If the string cannot be represented as Latin1, an error is returned.
*
* During the conversion also validation of the input string is done.
* This function is suitable to work with inputs from untrusted sources.
Expand Down Expand Up @@ -2681,12 +2688,14 @@ class implementation {
* @param input the UTF-8 string to convert
* @param length the length of the string in bytes
* @param latin1_output the pointer to buffer that can hold conversion result
* @return the number of written char; 0 if the input was not valid UTF-8 string
* @return the number of written char; 0 if the input was not valid UTF-8 string or if it cannot be represented as Latin1
*/
simdutf_warn_unused virtual size_t convert_utf8_to_latin1(const char * input, size_t length, char* latin1_output) const noexcept = 0;

/**
* Convert possibly broken UTF-8 string into latin1 string with errors
* Convert possibly broken UTF-8 string into latin1 string with errors.
* If the string cannot be represented as Latin1, an error
* code is returned.
*
* During the conversion also validation of the input string is done.
* This function is suitable to work with inputs from untrusted sources.
Expand Down Expand Up @@ -2862,7 +2871,7 @@ class implementation {
* @param input the UTF-16LE string to convert
* @param length the length of the string in 2-byte code units (char16_t)
* @param latin1_buffer the pointer to buffer that can hold conversion result
* @return number of written code units; 0 if input is not a valid UTF-16LE string
* @return number of written code units; 0 if input is not a valid UTF-16LE string or if it cannot be represented as Latin1
*/
simdutf_warn_unused virtual size_t convert_utf16le_to_latin1(const char16_t * input, size_t length, char* latin1_buffer) const noexcept = 0;

Expand All @@ -2877,12 +2886,14 @@ class implementation {
* @param input the UTF-16BE string to convert
* @param length the length of the string in 2-byte code units (char16_t)
* @param latin1_buffer the pointer to buffer that can hold conversion result
* @return a result pair struct (of type simdutf::error containing the two fields error and count) with an error code and either position of the error (in the input in code units) if any, or the number of char written if successful.
* @return number of written code units; 0 if input is not a valid UTF-16BE string or if it cannot be represented as Latin1
*/
simdutf_warn_unused virtual size_t convert_utf16be_to_latin1(const char16_t * input, size_t length, char* latin1_buffer) const noexcept = 0;

/**
* Convert possibly broken UTF-16LE string into Latin1 string.
* If the string cannot be represented as Latin1, an error
* is returned.
*
* During the conversion also validation of the input string is done.
* This function is suitable to work with inputs from untrusted sources.
Expand All @@ -2897,6 +2908,8 @@ class implementation {

/**
* Convert possibly broken UTF-16BE string into Latin1 string.
* If the string cannot be represented as Latin1, an error
* is returned.
*
* During the conversion also validation of the input string is done.
* This function is suitable to work with inputs from untrusted sources.
Expand Down Expand Up @@ -3157,6 +3170,7 @@ class implementation {

/**
* Convert possibly broken UTF-32 string into Latin1 string and stop on error.
* If the string cannot be represented as Latin1, an error is returned.
*
* During the conversion also validation of the input string is done.
* This function is suitable to work with inputs from untrusted sources.
Expand All @@ -3168,7 +3182,6 @@ class implementation {
* @param latin1_buffer the pointer to buffer that can hold conversion result
* @return a result pair struct (of type simdutf::error containing the two fields error and count) with an error code and either position of the error (in the input in code units) if any, or the number of char written if successful.
*/

simdutf_warn_unused virtual result convert_utf32_to_latin1_with_errors(const char32_t * input, size_t length, char* latin1_buffer) const noexcept = 0;

/**
Expand Down

0 comments on commit d34fd21

Please sign in to comment.