diff options
| author | iximeow <me@iximeow.net> | 2026-05-08 01:19:33 +0000 |
|---|---|---|
| committer | iximeow <me@iximeow.net> | 2026-05-25 01:43:55 +0000 |
| commit | f900cfe558b97d187226c6e0791ad8992ba8f4a0 (patch) | |
| tree | 8909e645eed396945cba92e9e1a370579d9ce26a /src/long_mode/mod.rs | |
| parent | 307d39dedfabaa0a0400ba62cd9a418d3f94a582 (diff) | |
working through a bunch of avx512 stuff, regspec constructors are const
Diffstat (limited to 'src/long_mode/mod.rs')
| -rw-r--r-- | src/long_mode/mod.rs | 60 |
1 files changed, 20 insertions, 40 deletions
diff --git a/src/long_mode/mod.rs b/src/long_mode/mod.rs index b262308..df7d025 100644 --- a/src/long_mode/mod.rs +++ b/src/long_mode/mod.rs @@ -134,10 +134,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, @@ -147,10 +145,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, @@ -160,10 +156,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, @@ -173,10 +167,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, @@ -186,10 +178,8 @@ impl RegSpec { /// construct a `RegSpec` for qword reg `num` #[inline] - pub fn q(num: u8) -> RegSpec { - if num >= 16 { - panic!("invalid x86 qword reg {}", num); - } + pub const fn q(num: u8) -> RegSpec { + assert!(num < 16, "invalid x86 qword reg"); RegSpec { num, @@ -199,10 +189,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, @@ -212,10 +200,8 @@ impl RegSpec { /// construct a `RegSpec` for dword reg `num` #[inline] - pub fn d(num: u8) -> RegSpec { - if num >= 16 { - panic!("invalid x86 dword reg {}", num); - } + pub const fn d(num: u8) -> RegSpec { + assert!(num < 16, "invalid x86 dword reg"); RegSpec { num, @@ -225,10 +211,8 @@ impl RegSpec { /// construct a `RegSpec` for word reg `num` #[inline] - pub fn w(num: u8) -> RegSpec { - if num >= 16 { - panic!("invalid x86 word reg {}", num); - } + pub const fn w(num: u8) -> RegSpec { + assert!(num < 16, "invalid x86 word reg"); RegSpec { num, @@ -238,10 +222,8 @@ impl RegSpec { /// construct a `RegSpec` for non-rex byte reg `num` #[inline] - pub fn rb(num: u8) -> RegSpec { - if num >= 16 { - panic!("invalid x86 rex-byte reg {}", num); - } + pub const fn rb(num: u8) -> RegSpec { + assert!(num < 16, "invalid x86 rex-byte reg"); let bank = if num < 4 { RegisterBank::B @@ -257,10 +239,8 @@ impl RegSpec { /// construct a `RegSpec` for non-rex byte reg `num` #[inline] - pub fn b(num: u8) -> RegSpec { - if num >= 8 { - panic!("invalid x86 non-rex byte reg {}", num); - } + pub const fn b(num: u8) -> RegSpec { + assert!(num < 8, "invalid x86 non-rex-byte reg"); RegSpec { num, |
