You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- The v128 operations are optimized for SSE2/SSSE3/SSE4.1.
- srtp_octet_string_is_eq is optimized for SSE2. When SSE2 is not
available, use a pair of 32-bit accumulators to speed up the
bulk of the operation. We use two accumulators to leverage
instruction-level parallelism supported by most modern CPUs.
- In srtp_cleanse, use memset and ensure it is not optimized away
with a dummy asm statement, which can potentially consume the
contents of the memory.
- Endian conversion functions use gcc-style intrinsics, when possible.
- In base64_block_to_octet_triple, prefer memchr to strchr as
it explicitly accepts the string length, which is known at compile
time.
The SIMD code uses intrinsics, which are available on all modern compilers.
For MSVC, config_in_cmake.h is modified to define gcc/clang-style SSE macros
based on MSVC predefined macros. We enable all SSE versions when it
indicates that AVX is enabled. SSE2 is always enabled for x86-64 or for x86
when SSE2 FP math is enabled.
0 commit comments