summaryrefslogtreecommitdiff
path: root/src/codegen/bitfield_unit.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/codegen/bitfield_unit.rs')
-rwxr-xr-xsrc/codegen/bitfield_unit.rs51
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);
}
}