From f900cfe558b97d187226c6e0791ad8992ba8f4a0 Mon Sep 17 00:00:00 2001 From: iximeow Date: Fri, 8 May 2026 01:19:33 +0000 Subject: working through a bunch of avx512 stuff, regspec constructors are const --- src/protected_mode/mod.rs | 48 ++++++++++++++++------------------------------- 1 file changed, 16 insertions(+), 32 deletions(-) (limited to 'src/protected_mode') diff --git a/src/protected_mode/mod.rs b/src/protected_mode/mod.rs index a59216f..d5690b8 100644 --- a/src/protected_mode/mod.rs +++ b/src/protected_mode/mod.rs @@ -133,10 +133,8 @@ impl RegSpec { /// construct a `RegSpec` for x87 register `st(num)` #[inline] - pub fn st(num: u8) -> RegSpec { - if num >= 8 { - panic!("invalid x87 reg st({})", num); - } + pub const fn st(num: u8) -> RegSpec { + assert!(num < 8, "invalid x87 reg"); RegSpec { num, @@ -146,10 +144,8 @@ impl RegSpec { /// construct a `RegSpec` for xmm reg `num` #[inline] - pub fn xmm(num: u8) -> RegSpec { - if num >= 32 { - panic!("invalid x86 xmm reg {}", num); - } + pub const fn xmm(num: u8) -> RegSpec { + assert!(num < 32, "invalid x86 xmm reg"); RegSpec { num, @@ -159,10 +155,8 @@ impl RegSpec { /// construct a `RegSpec` for ymm reg `num` #[inline] - pub fn ymm(num: u8) -> RegSpec { - if num >= 32 { - panic!("invalid x86 ymm reg {}", num); - } + pub const fn ymm(num: u8) -> RegSpec { + assert!(num < 32, "invalid x86 ymm reg"); RegSpec { num, @@ -172,10 +166,8 @@ impl RegSpec { /// construct a `RegSpec` for zmm reg `num` #[inline] - pub fn zmm(num: u8) -> RegSpec { - if num >= 32 { - panic!("invalid x86 zmm reg {}", num); - } + pub const fn zmm(num: u8) -> RegSpec { + assert!(num < 32, "invalid x86 zmm reg"); RegSpec { num, @@ -185,10 +177,8 @@ impl RegSpec { /// construct a `RegSpec` for mask reg `num` #[inline] - pub fn mask(num: u8) -> RegSpec { - if num >= 8 { - panic!("invalid x86 mask reg {}", num); - } + pub const fn mask(num: u8) -> RegSpec { + assert!(num < 8, "invalid x86 mask reg"); RegSpec { num, @@ -198,10 +188,8 @@ impl RegSpec { /// construct a `RegSpec` for dword reg `num` #[inline] - pub fn d(num: u8) -> RegSpec { - if num >= 8 { - panic!("invalid x86 dword reg {}", num); - } + pub const fn d(num: u8) -> RegSpec { + assert!(num < 8, "invalid x86 dword reg"); RegSpec { num, @@ -211,10 +199,8 @@ impl RegSpec { /// construct a `RegSpec` for word reg `num` #[inline] - pub fn w(num: u8) -> RegSpec { - if num >= 8 { - panic!("invalid x86 word reg {}", num); - } + pub const fn w(num: u8) -> RegSpec { + assert!(num < 8, "invalid x86 word reg"); RegSpec { num, @@ -224,10 +210,8 @@ impl RegSpec { /// construct a `RegSpec` for byte reg `num` #[inline] - pub fn b(num: u8) -> RegSpec { - if num >= 8 { - panic!("invalid x86 byte reg {}", num); - } + pub const fn b(num: u8) -> RegSpec { + assert!(num < 8, "invalid x86 byte reg"); RegSpec { num, -- cgit v1.1