diff options
Diffstat (limited to 'src/codegen/bitfield_unit.rs')
-rwxr-xr-x | src/codegen/bitfield_unit.rs | 51 |
1 files changed, 26 insertions, 25 deletions
diff --git a/src/codegen/bitfield_unit.rs b/src/codegen/bitfield_unit.rs index 5256be07..7f263fd1 100755 --- a/src/codegen/bitfield_unit.rs +++ b/src/codegen/bitfield_unit.rs @@ -27,12 +27,13 @@ where let byte_index = index / 8; let byte = self.storage.as_ref()[byte_index]; - let mut bit_index = index % 8; - #[cfg(target_endian = "big")] - { - // Adjust the index for endianness. - bit_index = 7 - bit_index; - } + let bit_index = + if cfg!(target_endian = "big") { + 7 - (index % 8) + } else { + index % 8 + }; + let mask = 1 << bit_index; byte & mask == mask @@ -45,14 +46,14 @@ where let byte_index = index / 8; let byte = &mut self.storage.as_mut()[byte_index]; - let mut bit_index = index % 8; - #[cfg(target_endian = "big")] - { - // Adjust the index for endianness. - bit_index = 7 - bit_index; - } - let mask = 1 << bit_index; + let bit_index = + if cfg!(target_endian = "big") { + 7 - (index % 8) + } else { + index % 8 + }; + let mask = 1 << bit_index; if val { *byte |= mask; } else { @@ -70,12 +71,12 @@ where for i in 0..(bit_width as usize) { if self.get_bit(i + bit_offset) { - let mut index = i; - #[cfg(target_endian = "big")] - { - // Adjust the index for endianness. - index = bit_width as usize - 1 - index; - } + let index = + if cfg!(target_endian = "big") { + bit_width as usize - 1 - i + } else { + i + }; val |= 1 << index; } } @@ -92,12 +93,12 @@ where for i in 0..(bit_width as usize) { let mask = 1 << i; let val_bit_is_set = val & mask == mask; - let mut index = i; - #[cfg(target_endian = "big")] - { - // Adjust the index for endianness. - index = bit_width as usize - 1 - index; - } + let index = + if cfg!(target_endian = "big") { + bit_width as usize - 1 - i + } else { + i + }; self.set_bit(index + bit_offset, val_bit_is_set); } } |