Crates.io | bitintr |
lib.rs | bitintr |
version | 0.3.0 |
source | src |
created_at | 2017-01-18 20:29:33.881348 |
updated_at | 2019-06-20 12:54:28.350166 |
description | Portable Bit Manipulation Intrinsics. |
homepage | https://github.com/gnzlbg/bitintr |
repository | https://github.com/gnzlbg/bitintr |
max_upload_size | |
id | 8127 |
size | 66,578 |
0b0000_0010_1001_1010
This #![no_std]
library exposes safe and portable low-level bit manipulation
instruction set architectures. The Minimum Supported Rust Version is 1.36.0.
For higher-level bitwise manipulations check the bitwise crate.
The intrinsics are exposed via traits named after their CPU instruction. These
traits are implemented for all integer types except u128/i128
.
The following ISAs are implemented:
x86 (bitintr::x86
):
ABM
: Advanced Bit Manipulation instructions (bitintr::x86::abm
).TBM
: Trailing Bit Manipulation instructions (bitintr::x86::tbm
).BMI
: Bit Manipulation Instruction Set 1.0 (bitintr::x86::bmi
).BMI2
: Bit Manipulation Instruction Set 2.0 (bitintr::x86::bmi2
).ARM (bitintr::arm
):
The actual code generated depends on the integer types involved and the features supported by the target architecture.
The check_asm.py
script verifies the generated assembly of the
intrinsics. It compiles the asm/arch_feature_*.rs
for the appropriate
architectures and target features and compares the assembly generated by rustc
with that included in the corresponding asm/arch_feature_*.asm
files.
Licensed under the MIT license.
Yes please! Just note that all contributions shall be licensed as above without any additional terms or conditions.