luaur-code-gen 0.1.0

Native (A64/X64) code generation for Luau (Rust).
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
use crate::functions::countlz_bit_utils::countlz;
use crate::functions::countrz_bit_utils::countrz;
use crate::records::assembly_builder_a_64::AssemblyBuilderA64;

impl AssemblyBuilderA64 {
    pub fn is_mask_supported(&mut self, mask: u32) -> bool {
        let lz = countlz(mask);
        let rz = countrz(mask);

        lz + rz > 0 && lz + rz < 32 && (mask >> rz) == (1u32 << (32 - lz - rz)) - 1
    }
}