From: Robert Pengelly Date: Wed, 8 Jul 2026 16:54:46 +0000 (+0100) Subject: Fixed add64 X-Git-Url: https://git.candlhat.org/?a=commitdiff_plain;h=a6c296805ff0f3d0825ab14eba978866a001dfb7;p=scc.git Fixed add64 --- diff --git a/int64.c b/int64.c index 257524e..1e4fe92 100644 --- a/int64.c +++ b/int64.c @@ -15,10 +15,10 @@ void add64 (int64_s *a, int64_s b) { unsigned long al = a->low & U32_MASK; unsigned long bl = b.low & U32_MASK; - unsigned long raw_sum = al + bl; - unsigned long carry = (raw_sum >> 32) & 1UL; - - a->low = raw_sum & U32_MASK; + unsigned long raw_sum = (al + bl) & U32_MASK; + unsigned long carry = (raw_sum < al) ? 1UL : 0UL; + + a->low = raw_sum; a->high = ((a->high & U32_MASK) + (b.high & U32_MASK) + carry) & U32_MASK; }