authorgravatar for paul.verigo@gmail.comPavel Verigo <paul.verigo@gmail.com> 2026-04-16 20:19:09+02:00
committergravatar for paul.verigo@gmail.comPavel Verigo <paul.verigo@gmail.com> 2026-04-18 18:47:17+02:00
log70c4b2424bc05a375dedd7c3ee527c9ba608b545
tree1f08eaf20dc0e45a850ec3baf235fdd0d0ca7eb9
parent9636d76b6d26d142f7d23e6d25eec1c28cf571b4

limb64: make fixLastLimb endian aware


1 files changed, 3 insertions(+), 2 deletions(-)

lib/compiler_rt/limb64.zig+3-2
...@@ -57,9 +57,10 @@ fn fixLastLimb(out_ptr: [*]u64, is_signed: bool, bits: u16) void {...@@ -57,9 +57,10 @@ fn fixLastLimb(out_ptr: [*]u64, is_signed: bool, bits: u16) void {
57 if (limb_cnt == true_limb_cnt) return;57 if (limb_cnt == true_limb_cnt) return;
58 const true_out = out_ptr[0..true_limb_cnt];58 const true_out = out_ptr[0..true_limb_cnt];
5959
60 const sign: u64 = if (!is_signed or @as(i64, @bitCast(true_out[limb_cnt - 1])) >= 0) 0 else ~@as(u64, 0);60 const ms = limbGet(true_out, limb_cnt - 1);
61 const sign: u64 = if (!is_signed or @as(i64, @bitCast(ms)) >= 0) 0 else ~@as(u64, 0);
61 for (limb_cnt..true_limb_cnt) |i| {62 for (limb_cnt..true_limb_cnt) |i| {
62 true_out[i] = sign;63 limbSet(true_out, i, sign);
63 }64 }
64}65}
6566