From a6c296805ff0f3d0825ab14eba978866a001dfb7 Mon Sep 17 00:00:00 2001 From: Robert Pengelly Date: Wed, 8 Jul 2026 17:54:46 +0100 Subject: [PATCH] Fixed add64 --- int64.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) 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; } -- 2.34.1