diff options
author | 2022-04-25 07:09:18 -0700 | |
---|---|---|
committer | 2022-04-25 07:09:18 -0700 | |
commit | 2c6e5c3fc4a7255eb29f7ae618d2826dd9a7d5e5 (patch) | |
tree | 1de65b5cc11b7a479f92f853980d6a8ee640c9e6 /src/base64/bun-base64.c | |
parent | 4b4df5095ea756388df4c26683ab0bb222750ed3 (diff) | |
download | bun-2c6e5c3fc4a7255eb29f7ae618d2826dd9a7d5e5.tar.gz bun-2c6e5c3fc4a7255eb29f7ae618d2826dd9a7d5e5.tar.zst bun-2c6e5c3fc4a7255eb29f7ae618d2826dd9a7d5e5.zip |
some of buffer
Diffstat (limited to 'src/base64/bun-base64.c')
-rw-r--r-- | src/base64/bun-base64.c | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/src/base64/bun-base64.c b/src/base64/bun-base64.c new file mode 100644 index 000000000..e11f88da5 --- /dev/null +++ b/src/base64/bun-base64.c @@ -0,0 +1,46 @@ + +#include "bun-base64.h" + +#if defined(__GNUC__) && defined(__ARM_NEON__) + +int neon_base64_decode(char *out, const char *src, size_t srclen, + size_t *outlen); + +#elif defined(__GNUC__) && (defined(__x86_64__) || defined(__i386__)) + +#include "fastavxbase64.h" + +#endif + +#if defined(__GNUC__) && defined(__ARM_NEON__) +size_t bun_base64_decode(char *dest, const char *src, size_t len, + size_t *outlen) { + // neon base64 is decode only + return neon_base64_decode(dest, src, len, outlen); +} +size_t bun_base64_encode(char *dest, const char *src, size_t len) { + return chromium_base64_encode(dest, src, len); +} + +#elif defined(__GNUC__) && (defined(__x86_64__) || defined(__i386__)) + +size_t bun_base64_decode(char *dest, const char *src, size_t len, + size_t *outlen) { + return fast_avx2_base64_decode(dest, src, len, outlen); +} +size_t bun_base64_encode(char *dest, const char *src, size_t len) { + + return fast_avx2_base64_encode(dest, src, len); +} + +#else + +size_t bun_base64_decode(char *dest, const char *src, size_t len, + size_t *outlen) { + return chromium_base64_decode(dest, src, len, outlen); +} +size_t bun_base64_encode(char *dest, const char *src, size_t len) { + return chromium_base64_encode(dest, src, len); +} + +#endif
\ No newline at end of file |