1
0
Fork 0
mirror of https://github.com/BLAKE3-team/BLAKE3 synced 2024-05-04 10:56:08 +02:00
BLAKE3/c/blake3_c_rust_bindings
Matthew Krupcale d91f20dd29 Start SSE2 implementation based on SSE4.1 version
Wire up basic functions and features for SSE2 support using the SSE4.1 version
as a basis without implementing the SSE2 instructions yet.

 * Cargo.toml: add no_sse2 feature
 * benches/bench.rs: wire SSE2 benchmarks
 * build.rs: add SSE2 rust intrinsics and assembly builds
 * c/Makefile.testing: add SSE2 C and assembly targets
 * c/README.md: add SSE2 to C build instructions
 * c/blake3_c_rust_bindings/build.rs: add SSE2 C rust binding builds
 * c/blake3_c_rust_bindings/src/lib.rs: add SSE2 C rust bindings
 * c/blake3_dispatch.c: add SSE2 C dispatch
 * c/blake3_impl.h: add SSE2 C function prototypes
 * c/blake3_sse2.c: add SSE2 C intrinsic file starting with SSE4.1 version
 * c/blake3_sse2_x86-64_{unix.S,windows_gnu.S,windows_msvc.asm}: add SSE2
   assembly files starting with SSE4.1 version
 * src/ffi_sse2.rs: add rust implementation using SSE2 C rust bindings
 * src/lib.rs: add SSE2 rust intrinsics and SSE2 C rust binding rust SSE2 module
   configurations
 * src/platform.rs: add SSE2 rust platform detection and dispatch
 * src/rust_sse2.rs: add SSE2 rust intrinsic file starting with SSE4.1 version
 * tools/instruction_set_support/src/main.rs: add SSE2 feature detection
2020-08-24 00:54:46 -04:00
..
benches remove a mis-optimization that hurt performance for uneven updates 2020-02-25 11:40:37 -05:00
src Start SSE2 implementation based on SSE4.1 version 2020-08-24 00:54:46 -04:00
Cargo.toml integrate assembly implementations into blake3_c_rust_bindings 2020-02-12 10:23:17 -05:00
README.md remove an obsolete remark about performance 2020-01-27 13:04:36 -05:00
build.rs Start SSE2 implementation based on SSE4.1 version 2020-08-24 00:54:46 -04:00

These are Rust bindings for the C implementation of BLAKE3. As there is a native Rust implementation of BLAKE3 provided in this same repo, these bindings are not expected to be used in production. They're intended for testing and benchmarking.