diff options
Diffstat (limited to 'asm/inline.rs')
-rw-r--r-- | asm/inline.rs | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/asm/inline.rs b/asm/inline.rs index a7898c5..5887baf 100644 --- a/asm/inline.rs +++ b/asm/inline.rs @@ -55,6 +55,7 @@ pub unsafe fn __delay(cyc: u32) { // The loop will normally take 3 to 4 CPU cycles per iteration, but superscalar cores // (eg. Cortex-M7) can potentially do it in 2, so we use that as the lower bound, since delaying // for more cycles is okay. + // Add 1 to prevent an integer underflow which would cause a long freeze let real_cyc = 1 + cyc / 2; asm!( // Use local labels to avoid R_ARM_THM_JUMP8 relocations which fail on thumbv6m. |