aboutsummaryrefslogtreecommitdiff
path: root/src/protected_mode/mod.rs
diff options
context:
space:
mode:
authoriximeow <me@iximeow.net>2026-05-08 01:19:33 +0000
committeriximeow <me@iximeow.net>2026-05-25 01:43:55 +0000
commitf900cfe558b97d187226c6e0791ad8992ba8f4a0 (patch)
tree8909e645eed396945cba92e9e1a370579d9ce26a /src/protected_mode/mod.rs
parent307d39dedfabaa0a0400ba62cd9a418d3f94a582 (diff)
working through a bunch of avx512 stuff, regspec constructors are const
Diffstat (limited to 'src/protected_mode/mod.rs')
-rw-r--r--src/protected_mode/mod.rs48
1 files changed, 16 insertions, 32 deletions
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,