File tree Expand file tree Collapse file tree 1 file changed +17
-9
lines changed Expand file tree Collapse file tree 1 file changed +17
-9
lines changed Original file line number Diff line number Diff line change @@ -1343,15 +1343,23 @@ pub fn fields(
13431343 }
13441344
13451345 // Update register modify bit masks
1346- let bitmask = ( u64:: MAX >> ( 64 - width) ) << offset;
1347- use ModifiedWriteValues :: * ;
1348- match mwv {
1349- Modify | Set | Clear => { }
1350- OneToSet | OneToClear | OneToToggle => {
1351- one_to_modify_fields_bitmap |= bitmask;
1352- }
1353- ZeroToClear | ZeroToSet | ZeroToToggle => {
1354- zero_to_modify_fields_bitmap |= bitmask;
1346+ let offsets = match f {
1347+ MaybeArray :: Array ( info, dim) => ( 0 ..dim. dim )
1348+ . map ( |i| i * dim. dim_increment + info. bit_offset ( ) )
1349+ . collect ( ) ,
1350+ MaybeArray :: Single ( info) => vec ! [ info. bit_offset( ) ] ,
1351+ } ;
1352+ for o in offsets {
1353+ let bitmask = ( u64:: MAX >> ( 64 - width) ) << o;
1354+ use ModifiedWriteValues :: * ;
1355+ match mwv {
1356+ Modify | Set | Clear => { }
1357+ OneToSet | OneToClear | OneToToggle => {
1358+ one_to_modify_fields_bitmap |= bitmask;
1359+ }
1360+ ZeroToClear | ZeroToSet | ZeroToToggle => {
1361+ zero_to_modify_fields_bitmap |= bitmask;
1362+ }
13551363 }
13561364 }
13571365 }
You can’t perform that action at this time.
0 commit comments