From 9b8eba88eab6680e75935359a52b18df1cadbc72 Mon Sep 17 00:00:00 2001 From: Ivan Boldyrev Date: Wed, 8 Jul 2026 17:10:53 +0200 Subject: [PATCH 1/2] Update to AARCHRMS-2026-06 --- aarchmrs-gen/src/lib.rs | 8 +-- aarchmrs-instructions/src/A64/control.rs | 1 + .../src/A64/control/extendedhints.rs | 56 +++++++++++++++++++ 3 files changed, 61 insertions(+), 4 deletions(-) create mode 100644 aarchmrs-instructions/src/A64/control/extendedhints.rs diff --git a/aarchmrs-gen/src/lib.rs b/aarchmrs-gen/src/lib.rs index 4da1884..ee4eb2b 100644 --- a/aarchmrs-gen/src/lib.rs +++ b/aarchmrs-gen/src/lib.rs @@ -21,10 +21,10 @@ mod encoding; mod generation; mod stack; -pub const AARCHMRS_2026_03_URL: &str = "https://developer.arm.com/-/cdn-downloads/permalink/Exploration-Tools-OS-Machine-Readable-Data/AARCHMRS_BSD/AARCHMRS_OPENSOURCE_A_profile_FAT-2026-03.tar.gz"; -pub const AARCHMRS_2026_03_FILE: &str = "AARCHMRS_OPENSOURCE_A_profile_FAT-2026-03.tar.gz"; -pub const AARCHMRS_2026_03_MD5: [u8; 16] = hex_literal::hex!("bffb39150432bb7e15be722a29625d0c"); -pub const AARCHMRS_2026_03_SIZE: u64 = 5_341_284; +pub const AARCHMRS_2026_03_URL: &str = "https://developer.arm.com/-/cdn-downloads/permalink/Exploration-Tools-OS-Machine-Readable-Data/AARCHMRS_BSD/AARCHMRS_OPENSOURCE_A_profile_FAT-2026-06.tar.gz"; +pub const AARCHMRS_2026_03_FILE: &str = "AARCHMRS_OPENSOURCE_A_profile_FAT-2026-06.tar.gz"; +pub const AARCHMRS_2026_03_MD5: [u8; 16] = hex_literal::hex!("ddb231b1fed030d3ae680c9ef7ab108c"); +pub const AARCHMRS_2026_03_SIZE: u64 = 5_696_585; pub const AARCHMRS_INSTRUCTIONS_FILE: &str = "Instructions.json"; const FEATURES: [&str; 3] = ["A64", "A32", "T32"]; diff --git a/aarchmrs-instructions/src/A64/control.rs b/aarchmrs-instructions/src/A64/control.rs index 35f98a6..f64e830 100644 --- a/aarchmrs-instructions/src/A64/control.rs +++ b/aarchmrs-instructions/src/A64/control.rs @@ -12,6 +12,7 @@ pub mod compbranch_regs; pub mod compbranch_regs2; pub mod condbranch; pub mod exception; +pub mod extendedhints; pub mod hints; pub mod miscbranch; pub mod pstate; diff --git a/aarchmrs-instructions/src/A64/control/extendedhints.rs b/aarchmrs-instructions/src/A64/control/extendedhints.rs new file mode 100644 index 0000000..430f69b --- /dev/null +++ b/aarchmrs-instructions/src/A64/control/extendedhints.rs @@ -0,0 +1,56 @@ +/* Copyright (c) 2010-2026 Arm Limited or its affiliates. All rights reserved. + * + * This document is Non-confidential and licensed under the BSD 3-clause license. + */ + +pub mod HINTE_extendedhint { + #[cfg(feature = "meta")] + pub const OPCODE_MASK: u32 = 0b11111111110110001111000000000000u32; + #[cfg(feature = "meta")] + pub const OPCODE: u32 = 0b11010101000000000010000000000000u32; + #[cfg(feature = "meta")] + pub const SHOULD_BE_MASK: u32 = 0b00000000000000000000000000000000u32; + #[cfg(feature = "meta")] + pub const NAME: &str = "HINTE_extendedhint"; + #[cfg(feature = "meta_field")] + #[allow(nonstandard_style)] + pub const FIELD_Rt_OFFSET: u32 = 0u32; + #[cfg(feature = "meta_field")] + #[allow(nonstandard_style)] + pub const FIELD_Rt_WIDTH: u32 = 5u32; + #[cfg(feature = "meta_field")] + #[allow(nonstandard_style)] + pub const FIELD_imm7_OFFSET: u32 = 5u32; + #[cfg(feature = "meta_field")] + #[allow(nonstandard_style)] + pub const FIELD_imm7_WIDTH: u32 = 7u32; + #[cfg(feature = "meta_field")] + #[allow(nonstandard_style)] + pub const FIELD_imm3_OFFSET: u32 = 16u32; + #[cfg(feature = "meta_field")] + #[allow(nonstandard_style)] + pub const FIELD_imm3_WIDTH: u32 = 3u32; + #[cfg(feature = "meta_field")] + #[allow(nonstandard_style)] + pub const FIELD_L_OFFSET: u32 = 21u32; + #[cfg(feature = "meta_field")] + #[allow(nonstandard_style)] + pub const FIELD_L_WIDTH: u32 = 1u32; + #[inline] + pub const fn HINTE_extendedhint( + L: ::aarchmrs_types::BitValue<1>, + imm3: ::aarchmrs_types::BitValue<3>, + imm7: ::aarchmrs_types::BitValue<7>, + Rt: ::aarchmrs_types::BitValue<5>, + ) -> ::aarchmrs_types::InstructionCode { + ::aarchmrs_types::InstructionCode::from_u32( + 0b1101010100u32 << 22u32 + | L.into_inner() << 21u32 + | 0b00u32 << 19u32 + | imm3.into_inner() << 16u32 + | 0b0010u32 << 12u32 + | imm7.into_inner() << 5u32 + | Rt.into_inner() << 0u32, + ) + } +} From 6a97a555530b5370de48636b14e42887d5a4d106 Mon Sep 17 00:00:00 2001 From: Ivan Boldyrev Date: Wed, 8 Jul 2026 17:19:30 +0200 Subject: [PATCH 2/2] New release of aarchmrs-instructions --- Cargo.toml | 4 ++-- aarchmrs-gen/Cargo.toml | 2 +- aarchmrs-instructions/Cargo.toml | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index f776da2..5d970d2 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -18,8 +18,8 @@ members = [ resolver = "3" [workspace.dependencies] -aarchmrs-gen = { path = "aarchmrs-gen", version = "0.2.1-2026-03" } -aarchmrs-instructions = { path = "aarchmrs-instructions", version = "0.4.0-2026-03" } +aarchmrs-gen = { path = "aarchmrs-gen", version = "0.2.1-2026-06" } +aarchmrs-instructions = { path = "aarchmrs-instructions", version = "0.4.0-2026-06" } aarchmrs-parser = { path = "aarchmrs-parser", version = "0.1.0" } aarchmrs-types = { path = "aarchmrs-types", version = "0.1.2" } harm = { path = "harm", version = "0.1.0" } diff --git a/aarchmrs-gen/Cargo.toml b/aarchmrs-gen/Cargo.toml index 9ba3850..0550663 100644 --- a/aarchmrs-gen/Cargo.toml +++ b/aarchmrs-gen/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "aarchmrs-gen" -version = "0.2.1-2026-03" +version = "0.2.1-2026-06" edition = "2024" description = "AARCHMRS generator" license = "BSD-3-Clause" diff --git a/aarchmrs-instructions/Cargo.toml b/aarchmrs-instructions/Cargo.toml index b5129fa..a4ba083 100644 --- a/aarchmrs-instructions/Cargo.toml +++ b/aarchmrs-instructions/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "aarchmrs-instructions" -version = "0.4.0-2026-03" +version = "0.4.0-2026-06" edition = "2024" description = "AARCHMRS-generated ARM instructions functions" license = "BSD-3-Clause"