mirror of
https://github.com/nodejs/node.git
synced 2025-08-15 13:48:44 +02:00

PR-URL: https://github.com/nodejs/node/pull/50629 Fixes: https://github.com/nodejs/node/issues/50561 Fixes: https://github.com/nodejs/node/pull/45091 Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Mohammed Keyvanzadeh <mohammadkeyvanzade94@gmail.com> Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com> Reviewed-By: Richard Lau <rlau@redhat.com>
56 lines
1.1 KiB
C
56 lines
1.1 KiB
C
#include <stdint.h>
|
|
#include <stddef.h>
|
|
#include <stdlib.h>
|
|
|
|
#include "../../../include/libbase64.h"
|
|
#include "../../tables/tables.h"
|
|
#include "../../codecs.h"
|
|
#include "config.h"
|
|
#include "../../env.h"
|
|
|
|
#if HAVE_SSE42
|
|
#include <nmmintrin.h>
|
|
|
|
// Only enable inline assembly on supported compilers and on 64-bit CPUs.
|
|
#ifndef BASE64_SSE42_USE_ASM
|
|
# if (defined(__GNUC__) || defined(__clang__)) && BASE64_WORDSIZE == 64
|
|
# define BASE64_SSE42_USE_ASM 1
|
|
# else
|
|
# define BASE64_SSE42_USE_ASM 0
|
|
# endif
|
|
#endif
|
|
|
|
#include "../ssse3/dec_reshuffle.c"
|
|
#include "../ssse3/dec_loop.c"
|
|
|
|
#if BASE64_SSE42_USE_ASM
|
|
# include "../ssse3/enc_loop_asm.c"
|
|
#else
|
|
# include "../ssse3/enc_translate.c"
|
|
# include "../ssse3/enc_reshuffle.c"
|
|
# include "../ssse3/enc_loop.c"
|
|
#endif
|
|
|
|
#endif // HAVE_SSE42
|
|
|
|
BASE64_ENC_FUNCTION(sse42)
|
|
{
|
|
#if HAVE_SSE42
|
|
#include "../generic/enc_head.c"
|
|
enc_loop_ssse3(&s, &slen, &o, &olen);
|
|
#include "../generic/enc_tail.c"
|
|
#else
|
|
BASE64_ENC_STUB
|
|
#endif
|
|
}
|
|
|
|
BASE64_DEC_FUNCTION(sse42)
|
|
{
|
|
#if HAVE_SSE42
|
|
#include "../generic/dec_head.c"
|
|
dec_loop_ssse3(&s, &slen, &o, &olen);
|
|
#include "../generic/dec_tail.c"
|
|
#else
|
|
BASE64_DEC_STUB
|
|
#endif
|
|
}
|