From b55a8ea70424032c19ef85ef95c5eee8b50d55c3 Mon Sep 17 00:00:00 2001 From: Sylvain Henry <sylvain@haskus.fr> Date: Fri, 14 Jul 2023 16:40:51 +0200 Subject: [PATCH] JS: better implementation for plusWord64 (#23597) --- rts/js/arith.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/rts/js/arith.js b/rts/js/arith.js index 835921ae1f8a..902be190c9a7 100644 --- a/rts/js/arith.js +++ b/rts/js/arith.js @@ -60,11 +60,11 @@ function h$hs_minusWord64(h1,l1,h2,l2) { } function h$hs_plusWord64(h1,l1,h2,l2) { - var a = W64(h1,l1); - var b = W64(h2,l2); - var r = BigInt.asUintN(64, a + b); - TRACE_ARITH("Word64: " + a + " + " + b + " ==> " + r) - RETURN_W64(r); + var l = l1+l2; + var rl = l>>>0; + var rh = (h1+h2+(l!=rl?1:0))>>>0; + TRACE_ARITH("Word64: " + (h1,l1) + " + " + (h2,l2) + " ==> " + (rh,rl)) + RETURN_UBX_TUP2(rh,rl); } function h$hs_timesInt64(h1,l1,h2,l2) { -- GitLab