From ddcb2111e45f8428a9ea2c1f32c4c02b314fa3d3 Mon Sep 17 00:00:00 2001 From: jangko Date: Wed, 14 Jun 2023 13:53:42 +0700 Subject: [PATCH] fix bugs found by nim-devel --- .../primitives/extended_precision_x86_64_gcc.nim | 10 ++++------ stint/uintops.nim | 4 ++-- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/stint/private/primitives/extended_precision_x86_64_gcc.nim b/stint/private/primitives/extended_precision_x86_64_gcc.nim index 9c7b7ab..6ec842e 100644 --- a/stint/private/primitives/extended_precision_x86_64_gcc.nim +++ b/stint/private/primitives/extended_precision_x86_64_gcc.nim @@ -44,14 +44,12 @@ func div2n1n_128*(q, r: var uint64, n_hi, n_lo, d: uint64) {.inline.}= when defined(cpp): asm """ divq %[divisor] - : "=a" (`q`), "=d" (`r`) - : "d" (`n_hi`), "a" (`n_lo`), [divisor] "rm" (`d`) - : + :"=a" (`q`), "=d" (`r`) + :"d" (`n_hi`), "a" (`n_lo`), [divisor] "rm" (`d`) """ else: asm """ divq %[divisor] - : "=a" (`*q`), "=d" (`*r`) - : "d" (`n_hi`), "a" (`n_lo`), [divisor] "rm" (`d`) - : + :"=a" (*`q`), "=d" (*`r`) + :"d" (`n_hi`), "a" (`n_lo`), [divisor] "rm" (`d`) """ diff --git a/stint/uintops.nim b/stint/uintops.nim index ba209a6..6d9e676 100644 --- a/stint/uintops.nim +++ b/stint/uintops.nim @@ -40,7 +40,7 @@ func setOne*(a: var StUint) = func zero*[bits: static[int]](T: typedesc[StUint[bits]]): T {.inline.} = ## Returns the zero of the input type - discard + result.setZero func one*[bits: static[int]](T: typedesc[StUint[bits]]): T {.inline.} = ## Returns the one of the input type @@ -51,7 +51,7 @@ func high*[bits](_: typedesc[StUint[bits]]): StUint[bits] {.inline.} = result[i] = high(Word) func low*[bits](_: typedesc[StUint[bits]]): StUint[bits] {.inline.} = - discard + result.setZero {.pop.} # Comparisons