Skip to content

Commit 71981bb

Browse files
committed
view: Ignore masks for fields that span the entire register
1 parent 569b21a commit 71981bb

1 file changed

Lines changed: 6 additions & 2 deletions

File tree

kernel/src/memory/view.rs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,12 @@ pub struct BitValue<T: PrimInt> {
1111
}
1212

1313
fn field_mask<T: PrimInt, A: PrimInt + Into<T>>(field: Field<T, A>) -> T {
14-
let mask: T = A::one().into();
15-
(mask << field.bit_width) - A::one().into()
14+
if field.bit_width == size_of::<T>() * 8 {
15+
T::max_value()
16+
} else {
17+
let mask: T = A::one().into();
18+
(mask << field.bit_width) - A::one().into()
19+
}
1620
}
1721

1822
impl<T: PrimInt> BitValue<T> {

0 commit comments

Comments
 (0)