diff --git a/cranelift/codegen/src/isa/x64/inst/mod.rs b/cranelift/codegen/src/isa/x64/inst/mod.rs index b6276c943d5f..76bde8e139ff 100644 --- a/cranelift/codegen/src/isa/x64/inst/mod.rs +++ b/cranelift/codegen/src/isa/x64/inst/mod.rs @@ -566,7 +566,7 @@ impl Inst { impl Inst { pub(crate) fn nop(len: u8) -> Self { - debug_assert!(len <= 16); + debug_assert!(len <= 15); Self::Nop { len } } @@ -2602,11 +2602,11 @@ impl MachInst for Inst { } fn gen_zero_len_nop() -> Inst { - Inst::Nop { len: 0 } + Inst::nop(0) } fn gen_nop(preferred_size: usize) -> Inst { - Inst::nop((preferred_size % 16) as u8) + Inst::nop(std::cmp::min(preferred_size, 15) as u8) } fn maybe_direct_reload(&self, _reg: VirtualReg, _slot: SpillSlot) -> Option { diff --git a/cranelift/codegen/src/machinst/mod.rs b/cranelift/codegen/src/machinst/mod.rs index 297d53195594..d65fd9b3cabf 100644 --- a/cranelift/codegen/src/machinst/mod.rs +++ b/cranelift/codegen/src/machinst/mod.rs @@ -178,7 +178,7 @@ pub trait MachInst: Clone + Debug { /// request a NOP of that size, or as close to it as possible. The machine /// backend may return a NOP whose binary encoding is smaller than the /// preferred size, but must not return a NOP that is larger. However, - /// the instruction must have a nonzero size. + /// the instruction must have a nonzero size if preferred_size is nonzero. fn gen_nop(preferred_size: usize) -> Self; /// Get the register universe for this backend.