fn fixLastLimb(out_ptr: [*]u64, is_signed: bool, bits: u16) void
fn fixLastLimb(out_ptr: [*]u64, is_signed: bool, bits: u16) void { const limb_cnt = usedLimbCount(bits); const true_limb_cnt = limbCount(bits); if (limb_cnt == true_limb_cnt) return; const true_out = out_ptr[0..true_limb_cnt]; const ms = limbGet(true_out, limb_cnt - 1); const sign: u64 = if (!is_signed or @as(i64, @bitCast(ms)) >= 0) 0 else ~@as(u64, 0); for (limb_cnt..true_limb_cnt) |i| { limbSet(true_out, i, sign); } }