Skip to content

Commit d3c0632

Browse files
committed
Fixed coding error. A condition for converting from svd array to rust array is that it's packed in memory, not that fields are 32 bits
1 parent aff4410 commit d3c0632

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

src/generate.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -494,6 +494,8 @@ fn register_block(registers: &[Register], defs: &Defaults) -> Result<Tokens> {
494494
}
495495
),
496496
Register::Array(ref info, ref array_info) => {
497+
let sequential_adresses = register_size == array_info.dim_increment*BITS_PER_BYTE;
498+
497499
let index_convertible = if let Some(ref indexes) = array_info.dim_index {
498500
let mut index_iter = indexes.iter();
499501
let mut previous = 0;
@@ -529,9 +531,7 @@ fn register_block(registers: &[Register], defs: &Defaults) -> Result<Tokens> {
529531
false
530532
};
531533

532-
let packed_registers = array_info.dim_increment == 4;
533-
534-
let array_convertible = index_convertible && packed_registers;
534+
let array_convertible = index_convertible && sequential_adresses;
535535

536536
if array_convertible {
537537
registers_expanded.push(

0 commit comments

Comments
 (0)