From 1e9a43109f472dd845b2175c82276dbc03a190c1 Mon Sep 17 00:00:00 2001 From: Andrey Zgarbul Date: Sat, 8 Feb 2025 13:40:50 +0300 Subject: [PATCH] update to svd-rs 0.4.10 --- CHANGELOG.md | 1 + Cargo.lock | 8 ++++---- Cargo.toml | 4 ++-- src/generate/register.rs | 27 +++++++++------------------ 4 files changed, 16 insertions(+), 24 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6604f511..c01f831b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/). - Some fixes for the `svd2rust-regress` tool and update of its documentation - Other internal clippy fixes for `clippy::manual_div_ceil`, `clippy::nonminimal_bool` and `clippy::needless_lifetimes` +- Update `svd-rs` to 0.4.10 ## [v0.35.0] - 2024-11-12 diff --git a/Cargo.lock b/Cargo.lock index 9dc97544..e1d7b55c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1335,9 +1335,9 @@ checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" [[package]] name = "svd-parser" -version = "0.14.7" +version = "0.14.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39ba83b8a290ee3a180051e10a043691bb91d1b6be2053a570936fbdbec5ee2b" +checksum = "5ee7838c1b248b3418519826888d6ed2be881092ccd815bf350bd713b1d9f687" dependencies = [ "anyhow", "roxmltree", @@ -1347,9 +1347,9 @@ dependencies = [ [[package]] name = "svd-rs" -version = "0.14.9" +version = "0.14.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e49a90f3c4d03d81687e81d41b00f349fd44ccf9c26e0185ee926968de093bb" +checksum = "2c491dfddbe51ba86eb72f0237201371702b363e72ec0503970787e54bed4219" dependencies = [ "once_cell", "regex", diff --git a/Cargo.toml b/Cargo.toml index 0acbc255..8398fce0 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -58,11 +58,11 @@ url = { version = "2.5", features = ["serde"] } [dependencies.svd-parser] features = ["expand"] -version = "0.14.7" +version = "0.14.8" [dependencies.svd-rs] features = ["serde"] -version = "0.14.9" +version = "0.14.10" [dependencies.syn] version = "2.0" diff --git a/src/generate/register.rs b/src/generate/register.rs index 56e72472..7ff3c265 100644 --- a/src/generate/register.rs +++ b/src/generate/register.rs @@ -1341,24 +1341,15 @@ pub fn fields( }); } - // Update register modify bit masks - let offsets = match f { - MaybeArray::Array(info, dim) => (0..dim.dim) - .map(|i| i * dim.dim_increment + info.bit_offset()) - .collect(), - MaybeArray::Single(info) => vec![info.bit_offset()], - }; - for o in offsets { - let bitmask = (u64::MAX >> (64 - width)) << o; - use ModifiedWriteValues::*; - match mwv { - Modify | Set | Clear => {} - OneToSet | OneToClear | OneToToggle => { - one_to_modify_fields_bitmap |= bitmask; - } - ZeroToClear | ZeroToSet | ZeroToToggle => { - zero_to_modify_fields_bitmap |= bitmask; - } + let bitmask = f.bitmask(); + use ModifiedWriteValues::*; + match mwv { + Modify | Set | Clear => {} + OneToSet | OneToClear | OneToToggle => { + one_to_modify_fields_bitmap |= bitmask; + } + ZeroToClear | ZeroToSet | ZeroToToggle => { + zero_to_modify_fields_bitmap |= bitmask; } } }