Skip to content

Commit 244b06c

Browse files
committed
Require that the svd array represented a packed memory area to be converted to a rust array
1 parent e8b5035 commit 244b06c

File tree

1 file changed

+9
-6
lines changed

1 file changed

+9
-6
lines changed

src/generate.rs

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -472,7 +472,7 @@ fn register_block(registers: &[Register], defs: &Defaults) -> Result<Tokens> {
472472
match *register {
473473
Register::Single(ref _into) => registers_expanded.push(register.clone()),
474474
Register::Array(ref _into, ref array_info) => {
475-
let array_convertable = if let Some(ref indexes) = array_info.dim_index {
475+
let index_convertible = if let Some(ref indexes) = array_info.dim_index {
476476
let mut index_iter = indexes.iter();
477477
let mut previous = 0;
478478

@@ -483,15 +483,15 @@ fn register_block(registers: &[Register], defs: &Defaults) -> Result<Tokens> {
483483
})
484484
};
485485

486-
let mut array_convertable_temp = match get_number_option(index_iter.next()) {
486+
let mut index_convertible_temp = match get_number_option(index_iter.next()) {
487487
Some(0) => true,
488488
_ => false,
489489
};
490490

491491
for element in index_iter {
492-
if !array_convertable_temp { break; }
492+
if !index_convertible_temp { break; }
493493

494-
array_convertable_temp = match get_number_option(Some(element)) {
494+
index_convertible_temp = match get_number_option(Some(element)) {
495495
Some(i) => i == previous+1,
496496
_ => false,
497497
};
@@ -502,13 +502,16 @@ fn register_block(registers: &[Register], defs: &Defaults) -> Result<Tokens> {
502502
};
503503
}
504504

505-
array_convertable_temp
505+
index_convertible_temp
506506
} else {
507507
false
508508
};
509+
510+
let packed_registers = array_info.dim_increment == 4;
509511

512+
let array_convertible = index_convertible && packed_registers;
510513

511-
if array_convertable {
514+
if array_convertible {
512515
registers_expanded.push(register.clone());
513516
} else {
514517
registers_expanded.append(&mut util::expand(register));

0 commit comments

Comments
 (0)