From af527aca88bf8b28857ad2c537f946ff1f276b26 Mon Sep 17 00:00:00 2001 From: Amanieu d'Antras Date: Thu, 16 Sep 2021 14:49:23 +0100 Subject: [PATCH] Fix PReg indexing with >32 pregs --- src/lib.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index 3182251..86afea7 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -108,13 +108,13 @@ impl PReg { /// all PRegs and index it efficiently. #[inline(always)] pub fn index(self) -> usize { - ((self.class as u8 as usize) << 5) | (self.hw_enc as usize) + ((self.class as u8 as usize) << Self::MAX_BITS) | (self.hw_enc as usize) } /// Construct a PReg from the value returned from `.index()`. #[inline(always)] pub fn from_index(index: usize) -> Self { - let class = (index >> 5) & 1; + let class = (index >> Self::MAX_BITS) & 1; let class = match class { 0 => RegClass::Int, 1 => RegClass::Float,