Skip to content

Commit 7b691f1

Browse files
Update macros.rs
1 parent e279538 commit 7b691f1

File tree

1 file changed

+9
-1
lines changed

1 file changed

+9
-1
lines changed

riscv/src/register/macros.rs

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1075,6 +1075,14 @@ macro_rules! test_csr_field {
10751075
#[macro_export]
10761076
macro_rules! test_ro_csr_field {
10771077
($reg:ident, $field:ident: [$start:expr, $end:expr], $expected:expr) => {{
1078-
assert_eq!($reg.$field(), $expected);
1078+
let bits = $reg.bits();
1079+
let shift = $end - $start + 1;
1080+
let mask = (1usize << shift) - 1;
1081+
let exp_val = (bits >> $start) & mask;
1082+
let val = $reg.$field();
1083+
assert_eq!(val & !mask, 0);
1084+
assert_eq!($expected & !mask, 0);
1085+
assert_eq!(val, exp_val);
1086+
assert_eq!(val, $expected);
10791087
}};
10801088
}

0 commit comments

Comments
 (0)