diff --git a/ykrt/src/compile/jitc_yk/jit_ir.rs b/ykrt/src/compile/jitc_yk/jit_ir.rs index 98760b356..65e402302 100644 --- a/ykrt/src/compile/jitc_yk/jit_ir.rs +++ b/ykrt/src/compile/jitc_yk/jit_ir.rs @@ -22,6 +22,7 @@ const SHORT_INSTR_MAX_OPERANDS: u64 = 3; const SHORT_OPERAND_SIZE: u64 = 18; const SHORT_OPERAND_KIND_SIZE: u64 = 3; const SHORT_OPERAND_KIND_MASK: u64 = 7; +const SHORT_OPERAND_VALUE_SIZE: u64 = 15; const SHORT_OPERAND_MASK: u64 = 0x3ffff; /// Bit fiddling for instructions. @@ -88,7 +89,7 @@ pub enum Operand { impl Operand { pub(crate) fn new(kind: OpKind, val: u64) -> Self { - if val < 2u64.pow(15) { + if val < 2u64.pow(u32::try_from(SHORT_OPERAND_VALUE_SIZE).unwrap()) { Self::Short(ShortOperand::new(kind, val)) } else { todo!()