Module isla_lib::bitvector [−][src]
This module defines the bitvector trait BV, and includes modules for concrete bitvectors of up to 64-bits, or up to 129-bits. The 129-bit bitvectors are intended for CHERI architectures as it allows capabilities to be represented without involving the SMT solver. Most functions in isla-lib, and dependent libraries will be parametric over the BV trait.
The reason for having an upper-bound on the size of concrete
bitvectors is so they can be fixed size, which allows them to be
Copy types in rust. This does not affect expressivity, just that
longer bitvectors will also be represented in the SMT solver, and
appear in isla as Val::Symbolic
(as defined the ir module).
Modules
b64 | |
b129 |
Traits
BV | This trait allows us to be generic over the representation of concrete bitvectors. Specific users of isla-lib may then choose different representations depending on use case - B64 will likely be the most efficient for ordinary use, but B129 can represent CHERI compressed capabilities concretely. |
Functions
bzhi_u64 | |
bzhi_u128 | |
write_bits64 |