Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -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" }
Expand Down
2 changes: 1 addition & 1 deletion aarchmrs-gen/Cargo.toml
Original file line number Diff line number Diff line change
@@ -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"
Expand Down
8 changes: 4 additions & 4 deletions aarchmrs-gen/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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"];
Expand Down
2 changes: 1 addition & 1 deletion aarchmrs-instructions/Cargo.toml
Original file line number Diff line number Diff line change
@@ -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"
Expand Down
1 change: 1 addition & 0 deletions aarchmrs-instructions/src/A64/control.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
56 changes: 56 additions & 0 deletions aarchmrs-instructions/src/A64/control/extendedhints.rs
Original file line number Diff line number Diff line change
@@ -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,
)
}
}